Spring-----配置及对象初始化(1)

一,配置文件进行Spring初始化

1,配置文件编写

<?xml version="1.0" encoding="utf-8" ?> <configuration>
/************* 这里会报异常“Spring.Context.Support.ContextRegistry”的类型初始值设定项引发异常。把配置注释掉就行了 <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> </startup>
***************/ <configSections>
//初始化Spring <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配置节点 <spring> <context> <resource uri="config://spring/objects" /> </context> <objects xmlns="http://www.springframework.net"> <description>人类</description> <object id="Model" type="Model.Person, Model" /> </objects> </spring> </configuration>

 

 

2,初始化代码

异常:No object named ‘Person‘ is defined : Cannot find definition for object [Person]

 static void Main(string[] args)
        {
            IApplicationContext ctx = ContextRegistry.GetContext();

            IPerson dao = ctx.GetObject("Person") as IPerson;

        }

  

这里报异常是因为在配置文件中没有找到  <object id="Person" type="Model.Person, Model" />  的节点

 

 

需在项目中增加Spring.Core.dll的引用

 

二,使用Xml文件Spring初始化

(1)具体文件的初始化

   编写Objects.xml

<?xml version="1.0" encoding="utf-8" ?>

<objects xmlns="http://www.springframework.net"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.net
        http://www.springframework.net/xsd/spring-objects.xsd">

  <object id="Person" type="Model.Person, Model">

  </object>

</objects>

  后台初始化

        private static void ReadFromXml()
        {
            IResource input = new FileSystemResource("Objects.xml");  //路径----这里使用的是相对路径,也可以使用绝对路径,如果路径错了会报异常

            IObjectFactory factory = new XmlObjectFactory(input);

            IPerson person = factory.GetObject("Person") as IPerson;

       person.Speak("hello"); }

 

(2)程序集下寻找配置文件

  private static void ReadFromMuiltDoc()
        {
            //需满足URI语法。
            //file://文件名
            //assembly://程序集名/命名空名/文件名
            string[] xmlFiles = new string[] 
            {
                "file://Objects.xml"
            };

            IApplicationContext context = new XmlApplicationContext(xmlFiles);

            IObjectFactory factory = (IObjectFactory)context;

            IPerson person = factory.GetObject("Person") as IPerson;

            person.Speak("多文件初始化");
        }

这种方式相对灵活

(3)在配置文件App.config或Web.config添加自定义配置节点

在配置文件中要引入<objects xmlns="http://www.springframework.net"/>命名空间,否则程序将会无法实例化Spring.NET容器。

 

<?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="assembly://FirstSpringNetApp/FirstSpringNetApp/Objects.xml"/>
      <resource uri="config://spring/objects" />
    </context>
    <objects xmlns="http://www.springframework.net"/> <!--必要-->
  </spring>

 

 

 

Spring-----配置及对象初始化(1),布布扣,bubuko.com

Spring-----配置及对象初始化(1)

上一篇:activiti学习之并行网关


下一篇:spring登录验证拦截器和根据用户角色登录