第十章 对象的生命周期
1.什么是生命周期
对象创建 存活 销毁的完整的过程
2.为什么学习对象的生命周期
在以前通过new创建对象,调用对象,则该对象存活,直到被JVM的垃圾回收机制回收
现在由Spring负责对象的创建 存活 销毁,了解生命周期,有助于使用好Spring为我们创建的对象
3.生命周期的三个阶段
创建阶段
scope="singleton"
Spring创建工厂的同时,创建对象
注意 : 设置scope="singleton"的同时,想要在获取对象的同时,创建对象
在bean标签中添加属性
scope="prototype"
Spring工厂在获取对象的同时,创建对象
初始化阶段
Spring工厂在创建完对象后,调用对象的初始化方法,完成初始化操作
1. 初始化方法提供:程序员根据需求,提供初始化方法,完成初始化操作
2. 初始化方法调用:Spring工厂进行调用
实现InitializingBean接口
//将初始化需求写在方法里面,完成初始化操作
public void afterPropertiesSet(){}
在对象中提供一个普通的初始化方法
//名字随便起
public void myInit(){}
//配置文件中进行配置
细节分析
如果一个对象既实现了InitializingBean接口, 又提供了普通的初始化方法时,怎么调用?谁先调用?
都会起作用
先调用接口方法
再调用普通的初始化方法
如果对象中存在成员变量, 需要进行注入, 先注入还是先初始化?
注入一定会发生在初始化之前
什么是初始化
资源的初始化 : 数据库 IO 网络...
销毁阶段
Spring销毁对象之前,会调用对象的销毁方法,完成销毁操作
1. Spring什么时候销毁所创建的对象
context.close();
2. 销毁方法 : 程序员根据需求,定义销毁方法,完成销毁操作
调用 : Spring工厂完成调用
实现DisposableBean接口
//将销毁需求写在该方法中,完成销毁操作
public void destroy(){}
在对象中提供一个普通的销毁方法
//在对象中定义方法,命名无要求
public void myDestroy(){}
//配置文件中进行配置
细节分析
销毁操作只适用于scope="singleton"时
什么是销毁
主要是资源的释放
总结