Spring中的 InitializingBean、BeanPostProcessor、@PostConstruct 等初始化动作的执行时机分析

初始化Bean的时序图如下:

 

 

小结说明:

1、相同点:InitializingBean 的(afterPropertiesSet方法)、BeanPostProcessor、@PostConstruct 都是在bean的属性注入完毕之后才执行,都可以用来进行bean的初始化动作

2、初始化执行顺序优先级由高到低:BeanPostProcessor的预初始化方法 > @PostConstruct方法 > InitializingBean 的(afterPropertiesSet方法) > BeanPostProcessor的后初始化方法

3、@PostConstruct 是通过 BeanPostProcessor 的预初始化方法执行的,略早于通过实现 InitializingBean 接口的方法 afterPropertiesSet()

使用注意:
如果要在当前类初始化的时候执行某段代码,且只执行一次,那么实现initializingBean接口。如果要在所有类实例化之后执行某段代码,则实现 BeanPostProcessor 接口重写后初始化方法

上一篇:如何为 Redis 设置密码


下一篇:城镇保障性住房管理:SpringBoot技术探索