SPRING.NET 1.3.2 学习3--IOC容器
2013-02-28 11:29
477 查看
IoC相关组件功能介绍Spring.Core:该程序集是Spring.Net IoC容器的基础.IObjectFactory:该接口提供了一个高级的配置机制并能管理任何类型的对象.IApplicationContext:IObjectFactory的子接口,更容易的集成Spring.NET的AOP特性,消息资源处理(用于国际化),事件传播,应用程序特定层上下文,例如用于web应用程序中的WebApplicationContext配置元数据:先看看XML元数据的基本结构
id属性是一个字符串,你用来识别个体对象定义,type属性定义对象的类型和使用完全限定类型名称,包括程序集名称举例说明如何使用IApplicationContext
View Codedaos.xml
View Code从上面的两个文件中可以看出,服务层包含PetStoreService类,和基于NHibernate对象/关系映射框架的两个数据访问对象类型HibernateAccountDao和HibernateItemDao.属性名元素指的是类的属性名称,ref元素指的是给对象属性定义的别名.id和ref元素之间的依赖关系,详见元对象的依赖注入配置.从非默认的资源位置加载配置元数据:上面加载配置文件的方式是假设配置文件位于bin\Debug根目录之下,你还可以使用IResource接口从其它路径加载资源文件,如:
View Code上面的文件省略了Content元素的type属性,在一个独立的程序中type属性默认为Spring.Context.Support.XmlApplicationContext类,而在Web程序中默认为WebApplicationContext.例如:
View Code从App.config/Web.config自定义配置部分得到IApplicationContext的引用,可以使用如下代码
View Code你还可以使用IApplicationContext构造器从多个xml文件中加载定义的对象
View Code
<objects xmlns="http://www.springframework.net"> <object id="..." type="..."> <!-- collaborators and configuration for this object go here --> </object> <object id="...." type="..."> <!-- collaborators and configuration for this object go here --> </object> <!-- more object definitions go here --> </objects>
id属性是一个字符串,你用来识别个体对象定义,type属性定义对象的类型和使用完全限定类型名称,包括程序集名称举例说明如何使用IApplicationContext
IApplicationContext context = new XmlApplicationContext("services.xml", "data-access.xml");构造函数中,第一个参数为服务层对象配置文件,第二个为数据访问层配置对象services.xml
View Codedaos.xml
View Code从上面的两个文件中可以看出,服务层包含PetStoreService类,和基于NHibernate对象/关系映射框架的两个数据访问对象类型HibernateAccountDao和HibernateItemDao.属性名元素指的是类的属性名称,ref元素指的是给对象属性定义的别名.id和ref元素之间的依赖关系,详见元对象的依赖注入配置.从非默认的资源位置加载配置元数据:上面加载配置文件的方式是假设配置文件位于bin\Debug根目录之下,你还可以使用IResource接口从其它路径加载资源文件,如:
IResource input = new FileSystemResource(@"D:\Objects.xml"); //实际物理路径 IObjectFactory factory = new XmlObjectFactory(input);另一种方法是在程序集下找配置文件
IApplicationContext context = new XmlApplicationContext( "file:///services.xml", "assembly://MyAssembly/MyDataAccess/data-access.xml"); IObjectFactory factory = (IObjectFactory) context;使用如下的格式访问程序集内嵌的资源文件,assembly://<AssemblyName>/<NameSpace>/<ResourceName>.在App.config/Web.config中声明配置容器
View Code上面的文件省略了Content元素的type属性,在一个独立的程序中type属性默认为Spring.Context.Support.XmlApplicationContext类,而在Web程序中默认为WebApplicationContext.例如:
View Code从App.config/Web.config自定义配置部分得到IApplicationContext的引用,可以使用如下代码
IApplicationContext ctx = ContextRegistry.GetContext();这个ContextRegistry用于实例化应用程序上下文和执行服务定位器的方式访问其他对象。Spring.NET 提供了Spring.Context.Support.ContextHandler,帮助我们直接在启动程序的时候加载配置信息。实际的配置文件通过 spring 元素中 context 元素下的 resource 指定,文件的话使用 file:// 协议描述,还可以使用其它的协议。例如嵌入在程序集中的配置文件可以使用 assembly:// , 直接写在配置文件中则为 config://。
View Code你还可以使用IApplicationContext构造器从多个xml文件中加载定义的对象
View Code
相关文章推荐
- Spring.Net学习笔记四(IOC容器对象的作用域)
- SPRING.NET 1.3.2 学习26--容器扩展点
- 学习Spring.NET - IoC对象管理容器(1)
- 轻松学习Spring<一> IoC容器和Dependency Injection模式
- spring ioc容器的学习笔记2---ioc容器系列的设计与实现
- 重新学习之spring第一个程序,配置IOC容器
- 框架学习—Spring的IOC容器之注解方式与AOP技术
- Spring学习之使用注解来构造IoC容器
- SPRING.NET 1.3.2 学习20--方法注入之替换方法注入
- SPRING.NET 1.3.2 学习8--设置集合对象的值
- spring源码学习之路---IOC容器初始化要义之bean定义载入(五)
- MyEclipse Spring 学习总结一 Spring IOC容器
- Spring揭秘 学习笔记一 (Spring的IoC容器 一)
- Spring学习(四)Spring容器的IOC应用
- (一)Spring 的 Ioc容器 《Spring揭秘》学习
- Spring.net----初探IOC容器
- Spring源码学习(一) IOC容器
- Spring学习--IOC容器的概念及一个简单IOC容器使用案例
- [原]容器学习(一):动手模拟spring的IoC
- Spring学习笔记---2.1-IOC容器解析Bean配置信息