Bean 的生命周期
bean 创建 ---> 初始化 ---> 销毁的过程
容器管理 bean 的生命周期 我们可以自定义初始化和销毁方法;容器在 bean 进行到当前生命周期的时候,来调用我们自定义的初始化和销毁方法
-
构造(对象创建): 单实例:在容器 ==启动== 的时候创建对象 多实例:在 ==每次获取== 的时候创建对象
BeanPostProcessor.postProcessBeforeInitialization
-
初始化: 对象创建完成,并赋值好,调用初始化方法
BeanPostProcessor.postProcessAfterInitialization
-
销毁: 单实例:容器关闭的时候 多实例:容器不会管理这个 bean;容器不会调用销毁方法
- 指定初始化和销毁方法:
通过 @Bean 指定
init-method
和destory-method
- 通过让 Bean 实现
InitializingBean
(实现初始化逻辑),DisposableBean
(定义销毁逻辑) - 可以使用 ==JSR250== 规范:
@PostConstruct
: 在 bean 创建完成并且属性赋值完成后,执行初始化方法@PreDestory
: 在容器销毁 bean 之前,通知我们进行清理工作 BeanPostProcessor
「接口」: bean 的后置处理器,在 bean 初始化前后进行一些处理工作postProcessBeforeInitialization
: 在初始化之前工作postProcessAfterInitialization
: 在初始化之后工作
- 指定初始化和销毁方法:
通过 @Bean 指定