BeanDefinitionRegistryPostProcessor
BeanFactoryPostProcessor
BeanPostProcessor
postProcessBeforeInitialization
postProcessAfterInitialization
PostConstruct
Constructor
Autowired
init-method
afterPropertiesSet
第一步 bean注册
BeanDefinitionRegistryPostProcessor
第二步 bean定义扩展
BeanFactoryPostProcessor
第三步 Constructor 实例化
第四步 Autowired
@Autowired是用于注入对象使用的,那么肯定本对象已经有了才能注入依赖的对象,所以构造器Constructor优先于@Autowired执行
第五步 bean功能扩展BeanPostProcessor
postProcessBeforeInitialization bean初始化之前执行
第六步 PostConstruct
@PostConstruct的描述,必须在所有的依赖都注入,所以@Autowired是优先于@PostConstruct执行的
第七步 afterPropertiesSet 初始化方法
初始化bean的时候执行,可以针对某个具体的bean进行配置。afterPropertiesSet 必须实现 InitializingBean接口。实现 InitializingBean接口必须实现afterPropertiesSet方法
第八步 init-method 初始化方法(xml)
第九步 bean功能扩展BeanPostProcessor
postProcessAfterInitialization bean初始化之后执行