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