首页 > 代码库 > Spring-----配置及对象初始化(1)

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>