1.什么是对象的生命周期
指的是一个对象创建,存活,消亡的一个完整过程
2.为什么要学习对象的生命周期
由Spring负责对象的创建、存活、销毁,了解生命周期,有利于我们使用好Spring为我们创建的对象
3.生命周期的3个阶段
- 创建阶段
Spring工厂何时创建对象
(1)scope=“singleton”
Spring⼯⼚创建的同时,对象的创建
注意:设置scope=singleton 这种情况下 也需要在获取对象的同时,创建对象
<bean lazy-init="true"/>
(2)scope=“prototype”
Spring 工厂会在获取对象的同时,创建对象
ctx.getBean("")
- 初始阶段
Spring⼯⼚在创建完对象后,调⽤对象的初始化⽅法,完成对应的初始化操作
1. 初始化⽅法提供:程序员根据需求,提供初始化⽅法,最终完成初始化操作
2. 初始化⽅法调⽤:Spring⼯⼚进⾏调⽤
(1)InitializingBean接口
//程序员根据需要,实现方法,完成初始化操作
public void afterProperitesSet(){
}
(2)对象中提供一个普通的方法
public void myInit(){
}
<bean id='product' class='xxx.Product'init-method='myInit'/>
(3)细节分析
- 如果一个对象即实现InitializingBean同时又提供的普通的初始化方法顺序
1.InitializingBean
2.普通初始化方法
- 注入一定发生在初始化操作的前端
- 什么叫做初始化操作
资源的初始化:数据库 IO 网络
- 销毁阶段
Spring销毁对象前,会调用对象的销毁方法,完成销毁操作
1.Spring什么时候销毁所创建的对象
ctx.close();
2.销毁方法:程序员根据自己的需求,定义销毁方法,完成销毁操作,调用:Spring工厂完成调用
(1)DisposableBean
public void destroy()throws Exception{
}
(2)定义一个普通的销毁方法
public void myDestroy()throws Exception{
}
<bean id="" class="" init-method="" destroymethod="myDestroy"/>
(3)细节分析
- 销毁方法的操作只适合用于scope=“singleton”
- 什么叫做销毁操作
主要指的就是: 资源的释放资源操作: io.close() connection.close();