一、IOC容器管理Bean生命周期过程和方法
1、Spring IOC容器可以管理Bean的生命周期,在生命周期的特定的时间点执行特定的操作。
2、Spring IOC对Bean的生命周期管理过程:
① 通过构造方法或者工厂方法创建Bean的实例
② 为Bean的属性注入值
③ 调用Bean的初始化方法
④ 此时Bean已经创建好,可以被使用了
⑤ 当容器关闭时,调用Bean的销毁方法
3、可以在Bean配置文件中,声明Bean时,设置init-method和destroy-method属性,指定Bean的初始化和销毁方法。
二、创建Bean后置处理器
1、Bean的后置处理器允许在调用初始化方法前后对Bean进行处理。
2、Bean后置处理器对IOC容器里的所有Bean实例逐一处理,而不是只处理某一个Bean。典型的应用是:检查Bean的正确性或根据特定的标准更改Bean的属性。
3、创建Bean后置处理器的方法:
实现 org.springframework.beans.factory.config.BeanPostProcessor 接口,
并重写postProcessBeforeInitialization 和 postProcessAfterInitialization 方法。
如果需要对Bean做额外的处理,可以在 postProcessBeforeInitialization 或 postProcessAfterInitialization 中处理。
4、在初始化方法被调用前后,Spring将Bean的实例分别传给上述两个方法。
5、添加Bean后置处理器后Bean的生命周期:
① 通过构造方法或者工厂方法创建Bean的实例
② 为Bean的属性注入值
③ 将Bean的实例传递给Bean的后置处理器方法进行处理:postProcessBeforeInitialization
④ 调用Bean的初始化方法
⑤ 将Bean的实例传递给Bean的后置处理器方法进行处理:postProcessAfterInitialization
⑥ Bean的实例已创建好,可以被使用
⑦ 当IOC容器关闭时,调用Bean的销毁方法