1、什么是对象的生命周期?
- 指的是一个对象的创建、存活、消亡的一个完整的过程。
由Spring负责对象的创建、存活、销毁,了解生命周期,有利于我们使用好Spring为我们创建的对象
2、生命周期的三个阶段:
- 创建阶段:
- scope="singlenton "
Spring工厂创建的同时,对象的创建
注意:设置scope="singlenton" 这种情况下,也需要在获取对象的同时,创建对象
<bean lazy-init="true"> 懒加载
- scope="prototype"
Spring工厂会在获取对象的同时,创建对象
ctx.getBean("")
- 初始化阶段
Spring工厂在创建完对象后,调用对象的初始化方法,完成对应的初始化操作
1、初始化方法提供:程序员根据需求,提供初始化方法,最终完成初始化操作
2、初始化方法调用:Spring工厂进行调用
- InitializingBean接口
// 程序员根据需求,实现的方法,完成初始化操作
public void afterPropertiesSet(){
}
- 对象中提供一个普通的方法
public void myInit(){
}
<bean id="product" class="xxx.Product" init-method="myInit"/>
- 细节分析
1.如果一个对象既实现InitializingBean ,同时又提供的普通初始化方法,顺序如何?
1.InitializingBean
2.普通初始化方法
2.注入一定发生在初始化操作的前面
3.什么叫做初始化操作
资源的初始化:数据库、IO、网络......
- 销毁阶段
Spring销毁对象前,会调用对象的销毁方法,完成销毁操作
1.Sprig什么时候销毁所创建的对象?
ctx.close();
2.销毁方法:程序员根据自己的需求,定义销毁方法,完成销毁操作
调用:Spring工厂完成调用
- DisposableBean
public void destory()throws Exception{
}
- 定义一份普通的销毁方法
public void myDestroy()throws Exception{
}
<bean id="" class="" init-method="" destory-method="myDestroy"/>
- 细节分析
1.销毁方法的操作只适用于scope="singleton"
2.什么叫做销毁操作?
主要指的就是 资源的释放操作 io.close() connnection.close()
关注公众号:空谷有来人,持续更新,敬请期待!