以下是学习笔记
----------Bean的配置项----------
id 在IOC容器总的唯一标识
class 要实例化的类
scope 范围
constructor arguments 构造器参数--构造器注入
properties 属性--设值注入
autowiring mode 自动装配模式
lazy-initialization mode 懒加载模式
initialization/destruction method 初始化/销毁的方法
----------Bean的作用域----------
singleton: 单例子,一个Bean容器中只有一个
prototype: 每次请求创建新的实例,destory方法不生效
request: 每次http请求创建一个实例,并且仅在当前request内有效
session: 每次http请求创建一个实例,在当前session内有效
global session: 基于portlet的web中有效,如果在web中,同session。(portlet定义了global session) 一个总系统,然后去不同的系统时用。
<bean id = "aaa" class="com.xxx.Aaa" scope="singleton" ></bean>
-------------------------------Bean的生命周期------------------------------------
1.定义:xml中配置的bean(<bean id ="xxx" class="xxxx" >)
2.初始化:context.start()时,配置,生成bean的实例
3.使用:代码中取出bean并调用他的方法
4.销毁:bean容器销毁时,去销毁bean创建的实例
-----------------------1.配置全局bean的默认初始化,销毁---------------------
<?xml version ... encoding=...>
<beans xmls= .....default-init-method="init" default-destroy-method="destory">
</beans>
-----------------------2.bean的配置(某一个bean)------------------------------
Bean的初始化:
1.配置init-method
<bean id="xxxBean" class="xxx.XxxBean" init-method="init"></bean>
public class XxxBean{
public void init(){
//...
}
}
Bean的销毁:
2.配置destory-method
<bean id="xxxBean" class="xxx.XxxBean" destroy-method="cleanup"></bean>
public class XxxBean{
public void cleanup(){
//...释放连接池之类的
}
}
-----------------------3.接口配置(某一个bean)---------------------------------
Bean的初始化:
实现org.springframework.beans.factory.InitializingBean接口,覆盖afterPropertiesSet()
Bean的销毁:
实现org.springfranework.beans.factory.DisposableBean接口,覆盖destory方法
注意:
如果3个方式同时使用,先后顺序是:接口 > 配置 (已经配了单独的,那么全局默认的就没有作用了)