Spring配置详解
Bean元素
使用该元素描述需要Spring容器管理的对象
name&id属性
别名,给被管理的对象起个名字,获得对象时根据该名称获得对象
name名称可以重复,也可以使用特殊字符
id名字不可以重复不可以使用特殊字符
class属性
被管理对象的完整类名
<bean name = "user" class = "bean.User"></bean>
如上述代码所示
factory-method属性
在静态/动态工厂方式下,用此标签来指定用哪一个方法来创建对象
factory-bean属性
在动态工厂方式下,用此标签来指定从哪一个类中寻找方法来创建对象
<bean id="" name = "user3" factory-bean="userFactory" factory-method="createUser2"></bean>
<bean id="" name = "userFactory" class = "test.UserFactory"></bean>
如上述代码所示,先将用到的类放入容器中,再用factory-bean在容器中寻找这个类,再调用相应的实例化方法
scope属性
此属性有四个值:singleton(默认),prototype,request,session
-
singleton
单例对象,被标识为单例的对象在Spring容器中只会存在一个实例 -
prototype
多例原型,被标识为多例的对象,每次再获得才会创建,每次创建都是新的对象 -
request
web环境下,对象与request生命周期一致 -
session
web环境下,对象与session生命周期一致
生命周期属性init-method&destroy-method
每一个对象在创建开始时会调用初始化方法,销毁时会调用运行后方法
<bean id="" name = "user" class = "bean.User" init-method="init" destroy-method="destroy"></bean>
在实体类中实现与配置文件同名的初始化与销毁方法
三种对象创建方式
- 空参构造方式
由Spring自动创建对象
<bean id="" name = "user" class = "bean.User"></bean>
- 静态工厂方式
由用户手动编写一个创建类,Spring框架调用此创建类进行创建
工厂类
public class UserFactory {
public static User createUser() {
System.out.println("success!");
return new User();
}
}
配置文件
<!-- 2.静态工厂-->
<bean id="" name = "user2"
class = "test.UserFactory"
factory-method="createUser">
</bean>
- 实例工厂方式
工厂类
public User createUser2(){
System.out.println("the dio success!");
return new User();
}
配置文件
<!-- 2.动态工厂-->
<bean id="" name = "user3" factory-bean="userFactory" factory-method="createUser2"></bean>
<bean id="" name = "userFactory" class = "test.UserFactory"></bean>