Spring|Spring - BeanFactory定义的标准处理顺序

BeanFactory类 在官方接口文档里提到,工厂初始化的标准处理顺序:

The full set of initialization methods and their standard order is: 1. BeanNameAware's setBeanName 2. BeanClassLoaderAware's setBeanClassLoader 3. BeanFactoryAware's setBeanFactory 4. ResourceLoaderAware's setResourceLoader (only applicable when running in an application context) 5. ApplicationEventPublisherAware's setApplicationEventPublisher (only applicable when running in an application context) 6. MessageSourceAware's setMessageSource (only applicable when running in an application context) 7. ApplicationContextAware's setApplicationContext (only applicable when running in an application context) 8. ServletContextAware's setServletContext (only applicable when running in a web application context) 9. postProcessBeforeInitialization methods of BeanPostProcessors 10. InitializingBean's afterPropertiesSet 11. a custom init-method definition 12. postProcessAfterInitialization methods of BeanPostProcessors

请留意常用的第9到12点:
第9点和12点是通过 BeanPostProccessor 接口进行处理的,
而第10点是通过 InitializingBean 接口去实现的。
【Spring|Spring - BeanFactory定义的标准处理顺序】工厂关闭的处理顺序:
On shutdown of a bean factory, the following lifecycle methods apply: 1. DisposableBean's destroy 2. a custom destroy-method definition

    推荐阅读