Bean的生命周期
正确理解spring容器中bean的生命周期很重要,有利于对bean的装配过程中进行一些自定义内容。如下图所示的生命周期:
如上图所见,在bean准备就绪之前,bean工厂执行了若干启动步骤,详细描述如下:
- spring对bean实例化;
- spring将值和bean的引用注入到bean对应的属性中;
- 如果bean实现了BeanNameAware接口,spring将bean的id传递给setBeanName()方法,该方法的作用就是设置bean的id到BeanFactory中方便创建该bean,同时让bean知道自己在BeanFactory配置中的名字;
- 如果bean实现了BeanFactoryAware接口,spring将调用setBeanFactroy()方法,将BeanFactory容器实例传入,便于bean够获取配置他们的BeanFactory的引用;
- 如果bean实现了ApplicationContextAware接口,spring将调用setApplicationContext()方法,将bean所在应用上下文的引用传进来,便于bean获取它所在的Spring容器;
- 如果bean实现了BeanPostProcessor接口,spring将调用它的postProcessBeforeInitialization()方法,该方法在bean初始化之前调用;
- 如果bean实现了InitializingBean接口,spring将调用它的afterPropertiesSet()方法,当bean的所用属性被设置完成之后调用该方法;
- 如果bean实现了BeanPostProcessor接口,spring将调用它的postProcessAfterInitialization()方法,在bean初始化完成之后调用;
- 如果bean实现了DisposableBean接口,spring将调用它的destory()方法;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。