Spring Bean 生命周期(2)

@[TOC](第九章:Spring Bean 生命周期(2))

11.Spring Bean 初始化前阶段

已完成
• Bean 实例化
• Bean 属性赋值
• Bean Aware 接口回调
• 方法回调
• BeanPostProcessor#postProcessBeforeInitialization

12.Spring Bean 初始化阶段

• Bean 初始化(Initialization) • @PostConstruct 标注方法
• 实现 InitializingBean 接口的 afterPropertiesSet() 方法
• 自定义初始化方法

13.Spring Bean 初始化后阶段

方法回调
• BeanPostProcessor#postProcessAfterInitialization

14.Spring Bean 初始化完成阶段

• 方法回调
• Spring 4.1 +:SmartInitializingSingleton#afterSingletonsInstantiated

15.Spring Bean 销毁前阶段

• 方法回调
• DestructionAwareBeanPostProcessor#postProcessBeforeDestructio

16.Spring Bean 销毁阶段

Bean 销毁(Destroy) • @PreDestroy 标注方法
• 实现 DisposableBean 接口的 destroy() 方法
• 自定义销毁方法

17.Spring Bean 垃圾收集

Bean 垃圾回收(GC) • 关闭 Spring 容器(应用上下文)
• 执行 GC
• Spring Bean 覆盖的 finalize() 方法被回调

BeanPostProcessor 的使用场景有哪些?

答:BeanPostProcessor 提供 Spring Bean 初始化前和初始化后的生
命周期回调,分别对应 postProcessBeforeInitialization 以及
postProcessAfterInitialization 方法,允许对关心的 Bean 进行扩展,甚至是替换。

BeanFactoryPostProcessor 与BeanPostProcessor 的区别

答:BeanFactoryPostProcessor 是Spring BeanFactory(实际为
ConfigurableListableBeanFactory) 的后置处理器,用于扩展
BeanFactory,或通过 BeanFactory 进行依赖查找和依赖注入

BeanFactory 是怎样处理 Bean 生命周期?

答:
BeanFactory 的默认实现为 DefaultListableBeanFactory,其中 Bean生命周期与方法映射如下:
• BeanDefinition 注册阶段 - registerBeanDefinition
• BeanDefinition 合并阶段 - getMergedBeanDefinition
• Bean 实例化前阶段 - resolveBeforeInstantiation
• Bean 实例化阶段 - createBeanInstance
• Bean 初始化后阶段 - populateBean
• Bean 属性赋值前阶段 - populateBean
• Bean 属性赋值阶段 - populateBean
• Bean Aware 接口回调阶段 - initializeBean
• Bean 初始化前阶段 - initializeBean
• Bean 初始化阶段 - initializeBean
• Bean 初始化后阶段 - initializeBean
• Bean 初始化完成阶段 - preInstantiateSingletons
• Bean 销毁前阶段 - destroyBean
• Bean 销毁阶段 - destroyBean

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值