上一篇学习了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();
}
}
复制代码
复制代码
复制代码
使用实例工厂方法实例化(工厂方法模式)
复制代码
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装配,下一篇我们学习注解配置https://www.cnblogs.com/yuanqinnan/p/10312037.html