spring.net的简单使用(三)创建对象
2017-04-11 15:20
381 查看
这篇主要说对象的创建方式。
spring.net提供了三种创建对象的方式,分别是构造器创建,静态工厂创建,实例工厂创建。
多数的情况下,容器会根据对象定义中type属性值去直接调用相应类型的某个构造器,
另外,容器也可以调用工厂方法来创建对象,这时的type属性的值就应该是包含工厂方法的类型。
一、通过构造器创建对象
通过构造器创建对象需要满足一定的条件,
1.指明对象类型type=“类全名,类所在程序集名”/
2.有一个无参的构造函数(依赖注入的时候需要外部可以调用构造函数)。
二、静态工厂创建
使用静态工厂创建需要配置factory-method属性,用factory-method属性来指定方法名。
三、实例工厂创建对象
使用实例工厂创建对象需要先定义一个工厂,然后设置factory-object和factory属性,
却满足实例工厂方法所在的对象必须也配置在同一容器或夫容器中,对象的定义不能再
包含type属性。
补充:
关于id和name的使用,官网中文文档是这样解释的:
每个对象都有一个或多个id(就是所谓的标识符或名称,这些术语的含义是相同的)。id在容器中应该是唯一的。一个对象通常只有一个标识符,如果指定了一个以上名称,其余的就会被认为是别名。
在XML对象定义中,用id或者name属性来定义对象的标识符。每个对象都需要用id或name属性定义至少一个标识符。id属性允许为对象定义指定一个唯一的id,因为在Spring.NET的shcema文档中,id被标识为XML元素的ID属性,XML解析器可以在其它元素引用它的时候进行验证,在配置对象标识符时,应该优先使用id属性。但是,id属性值不能包含任何XML ID不允许使用的字符。如果一定要使用这些字符,应该使用name属性,在name属性中也可以通过逗号或分号为对象指定一个或多个别名。
spring.net提供了三种创建对象的方式,分别是构造器创建,静态工厂创建,实例工厂创建。
多数的情况下,容器会根据对象定义中type属性值去直接调用相应类型的某个构造器,
另外,容器也可以调用工厂方法来创建对象,这时的type属性的值就应该是包含工厂方法的类型。
一、通过构造器创建对象
通过构造器创建对象需要满足一定的条件,
1.指明对象类型type=“类全名,类所在程序集名”/
2.有一个无参的构造函数(依赖注入的时候需要外部可以调用构造函数)。
<object name="person" type="LINQDemo.person,LINQDemo"> </object> IApplicationContext ctx = ContextRegistry.GetContext(); person stu = ctx.GetObject("person") as person;
二、静态工厂创建
使用静态工厂创建需要配置factory-method属性,用factory-method属性来指定方法名。
配置 <object id="staticFactory" type="LINQDemo.staticFactory,LINQDemo" factory-method="getObject"> <property name="name" value="小爱"></property> <property name="id" value="2"></property> </object> 静态工厂方法 static public object getObject() { return new student(); } 调用 IApplicationContext ctx = ContextRegistry.GetContext(); student stu = ctx.GetObject("staticFactory") as student;
三、实例工厂创建对象
使用实例工厂创建对象需要先定义一个工厂,然后设置factory-object和factory属性,
却满足实例工厂方法所在的对象必须也配置在同一容器或夫容器中,对象的定义不能再
包含type属性。
配置 为实例工厂类配置 <object id="instance" type="LINQDemo.instanceFactory,LINQDemo"></object> 配置实例工厂生成的对象 <object id="instanceFactory" factory-object="instance" factory-method="getObject" > <property name="name" value="小艾"></property> <property name="id" value="3"></property> </object> 实例工厂类 public object getObject() { return new student(); } 调用 IApplicationContext ctx = ContextRegistry.GetContext(); student stu = ctx.GetObject("instanceFactory") as student;
补充:
关于id和name的使用,官网中文文档是这样解释的:
每个对象都有一个或多个id(就是所谓的标识符或名称,这些术语的含义是相同的)。id在容器中应该是唯一的。一个对象通常只有一个标识符,如果指定了一个以上名称,其余的就会被认为是别名。
在XML对象定义中,用id或者name属性来定义对象的标识符。每个对象都需要用id或name属性定义至少一个标识符。id属性允许为对象定义指定一个唯一的id,因为在Spring.NET的shcema文档中,id被标识为XML元素的ID属性,XML解析器可以在其它元素引用它的时候进行验证,在配置对象标识符时,应该优先使用id属性。但是,id属性值不能包含任何XML ID不允许使用的字符。如果一定要使用这些字符,应该使用name属性,在name属性中也可以通过逗号或分号为对象指定一个或多个别名。
相关文章推荐
- spring.net的简单使用(四)对象属性注入
- Spring.NET依赖注入框架学习-- 泛型对象的创建和使用
- 使用Spring来创建一个简单的工作流引擎
- 如何使用 Visual Studio .NET 工具创建数据库对象和 Transact-SQL 存储过程。
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建项目
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建项目
- ASP 技巧一则之 简化创建关闭记录集对象并创建使用简单的MSSQL存储过程 By shawl.qiu
- 使用Spring来创建一个简单的工作流引擎
- Spring创建对象工厂功能的简单实现
- spring.net 对象创建
- 一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建项目
- 使用Spring来创建一个简单的工作流引擎
- ASP之简化创建关闭记录集对象并创建使用简单的MSSQL存储过程
- spring.net 框架分析(一)对象的创建
- 使用Spring来创建一个简单的工作流引擎
- 使用Spring来创建一个简单的工作流引擎
- 使用Spring来创建一个简单的工作流引擎
- ASP之简化创建关闭记录集对象并创建使用简单的MSSQL存储过程
- 《Java编程思想》之对象的创建、使用、生命期(简单比较java与C++的不同之处)
- 《Java编程思想》之对象的创建、使用、生命期(简单比较java与C++的不同之处)