第十章 对象的生命周期

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"时

什么是销毁

主要是资源的释放

总结