zoukankan      html  css  js  c++  java
  • Spring.Net学习笔记(1)-容器的使用

    一、下载地址:

    http://www.springframework.net/download.html

    二、相关程序集

    Spring.Net容器定义在程序集Spring.Core.dll中,它依赖于Common.Logging.dll。该程序集位于

    Spring.NET-1.3.1Spring.NETin et4.0 elease目录下

    三、创建容器

    1.编程方式的容器

    使用Spring.Context.Support.StaticApplicationContxt直接创建容器

    public class Person
        {
            public string Name { get; set; }
            public override string ToString()
            {
                return "This is Person";
            }
        }
    class Program
    {
        static void Main(string[] args)
        {
            //创建容器
            Spring.Context.Support.StaticApplicationContext context = new StaticApplicationContext();
    
            //注册Person类
            context.RegisterPrototype("Person", typeof(Person), null);
    
            //从容器中获取Person对象
            Person person = context.GetObject("Person") as Person;
    
            Console.WriteLine(person);
        }
    }

    2.使用xml方式(注意xml的输出方式)

    处理xml的配置处理器:Spring.Context.Support.XmlApplicationContext

    <?xml version="1.0" encoding="utf-8" ?>
    <objects xmlns="http://www.springframework.net">
      <object id="Person" type="CPrj.Person,Cprj"></object>
    </objects>
    class Program
    {
        static void Main(string[] args)
        {
            Spring.Context.Support.XmlApplicationContext context = new XmlApplicationContext("objects.xml");
            Person person = context.GetObject("Person") as Person;
            Console.WriteLine(person); 
        }
    }

    注:<object>的父节点必须是<objects>,且objects的xmlns元素是必须的

    3.使用配置文件+xml文件

    处理器Spring.Context.Support.ContextHandler在启动程序时候加载配置信息

    <?xml version="1.0" encoding="utf-8" ?>
    <objects xmlns="http://www.springframework.net">
      <object id="Person" type="CPrj.Person,Cprj"></object>
    </objects>
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    
      <configSections>
        <sectionGroup name="spring">
          <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"></section>
        </sectionGroup>
      </configSections>
    
      <spring>
        <context>
          <resource uri="file://objects.xml"></resource>
        </context>
      </spring>
    
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
      </startup>
    </configuration>
    class Program
    {
        static void Main(string[] args)
        {
            Spring.Context.IApplicationContext context = Spring.Context.Support.ContextRegistry.GetContext();
            Person person = context.GetObject("Person") as Person;
            Console.WriteLine(person);
        }
    }

    注:context节点的默认type就是 Spring.Context.Support.XmlApplicationContext,Spring.Core 。故可省去

    <spring>
      <context type="Spring.Context.Support.XmlApplicationContext,Spring.Core">
        <resource uri="file://objects.xml"></resource>
      </context>
    </spring>

    4.使用配置文件

    xml对象定义也可以放在DotNet的标准应用程序配置文件中,此时必须为<objects>节点预先注册相应的节点处理器

    需要使用一个新的配置处理器:Spring.Context.Support.DefaultSectionHandler

    它可以帮助我们解析spring配置信息

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    
      <configSections>
        <sectionGroup name="spring">
          <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"></section>
          <section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>
        </sectionGroup>
      </configSections>
    
      <spring>
        <context>
          <resource uri="config://spring/objects"></resource>
        </context>
        <objects xmlns="http://www.springframework.net">
          <object id="Person" type="CPrj.Person,CPrj"></object>
        </objects>
      </spring>
    
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
      </startup>
    </configuration>
    class Program
    {
        static void Main(string[] args)
        {
            Spring.Context.IApplicationContext context = Spring.Context.Support.ContextRegistry.GetContext();
            Person person = context.GetObject("Person") as Person;
            Console.WriteLine(person);
            Console.ReadKey();
        }
    }

    注:spring和context节点名称不是任意的,必须是spring和context。Spring.Net本身将“spring/context”作为字符串常亮定义在AbstractApplicationContext类中以表示上下文的节点名称

    image

    5.混合使用外部配置文件和嵌入的配置

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
            <sectionGroup name="spring">
                <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
                <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
            </sectionGroup>
        </configSections>
    
        <spring>
            <context>
                <resource uri="file://objects.xml"/>
                <resource uri="config://spring/objects"/>
            </context>
            <objects>
                <object id="Person" type="CPrj.Person,CPrj"></object>
            </objects>
        </spring>
        
    </configuration>

    四、参考文章

    http://www.cnblogs.com/haogj/archive/2011/06/10/2077540.html

    更多精彩内容请看:http://www.cnblogs.com/2star
  • 相关阅读:
    jquery+easy ui 实现表格列头筛选
    javascript 未结束的字符串常量
    C# 中带@字符串中的转义符号
    .net 和java JSON 模板
    百度下载google 浏览器安装失败
    无法在web服务器上启动调试,此项目在使用一个被配置为使用特定IP地址的网站。请在项目URL中指定计算机名称。
    无法在web服务器上启动调试,服务器不支持对ASP.NET 或ATL Server应用程序进行调试。
    CSS Select 标签取选中文本值
    CSS 文章段落样式
    第二个冲刺周期第一天
  • 原文地址:https://www.cnblogs.com/kimisme/p/5205628.html
Copyright © 2011-2022 走看看