Spring之旅第三篇-Spring配置详解
目录
一、Bean元素配置1.1 基本配置1.2 bean的进阶配置1.3实例化bean的方式1.4 spring的分模块配置二、spring 属性注入2.1 set方法注入2.2 构造函数注入2.3 spel注入三、复杂类型注入3.1 数组3.2 List3.3 Set3.4 Map3.5 Properties
上一篇学习了IOC的概念并初步分析了实现原理,这篇主要学习Spring的配置,话不多说,让我们开始!
回到顶部
一、Bean元素配置
1.1 基本配置
看一个最基本的bean配置
上面的配置中,我们将bean交给spring管理,看其中属性字段:
class:被管理对象的完整类名name:被管理对象的名称,可以通过名称获取改对象(可以重复,可以使用特殊字符)id:与name作用相同(不可以重复,不可以使用特殊字符)
1.2 bean的进阶配置
scope属性
singleton:定义bean的范围为每个Spring容器一个实例(默认值)prototype:定义bean可以被多次实例化(使用一次就创建一次)request:定义bean的范围是HTTP请求,只有再使用有web能力的spring上下文时有效。request:定义bean的范围是HTTP请求,只有再使用有web能力的spring上下文时有效。global-session:定义bean的范围是全局HTTP会话,只有再portlet上下文中有效。
生命周期属性
init-method:配置一个方法作为生命周期初始化方法.spring会在对象创建之后立即调用.destory-method:配置一个方法作为生命周期的销毁方法.spring容器在关闭并销毁所有容器中的对象之前调用.代码如下
注意,只有singleton的bean,destory-method才有效
1.3实例化bean的方式
使用类构造器实例化(默认无参数)
使用静态工厂方法实例化(简单工厂模式)
public class HellowWorldFactory {
public static HelloWorld createHellowWorld(){
return new HelloWorld();
}
}
class="com.yuanqinnan.test.HellowWorldFactory"
factory-method="createHellowWorld">
使用实例工厂方法实例化(工厂方法模式)
public class HellowWorldFactory2 {
public HelloWorld createHellowWorld(){
return new HelloWorld();
}
}
1.4 spring的分模块配置
spring 允许多个文件进行配置,可以按照模块来进行配置
回到顶部
二、spring 属性注入
2.1 set方法注入
元素的子元素指明了使用它们的set方法来注入,可以使用property的value属性来注入简单类型
User类与Car类代码就不贴了,应该是可以看得懂。
2.2 构造函数注入
使用constructor-arg来完成构造方法的注入,注入的方式和setter方式注入相同。 可以通过type属性,控制注入的类型 可以通过index属性,控制注入的顺序 可以通过name属性,控制注入的名字
2.3 spel注入
三、复杂类型注入
3.1 数组
tom
lucy
3.2 List
tom
lucy
3.3 Set
com.jbdc.mysql.Driver
root
3.4 Map
3.5 Properties
com.jbdc.mysql.Driver
root
1234
总结:以上是spring的配置详解,都是通过XML装配,下一篇我们学习注解配置

浙公网安备 33010602011771号