1. Spring中Bean的生命周期?
- Spring启动,查找并加载需要被Spring管理的Bean,进行Bean实例化。(实例化对象)
- 使用依赖注入,Spring按照Bean定义信息配置Bean所有属性。(填充属性值及引用)
- 注入Aware接口,Spring会检测该对象是否实现了xxxAware接口,并将相关xxxAware实例注入给Bean 。
BeanNameAware, BeanFactoryAware, ApplicationContextAware
- 如果实现了
BeanPostProcessor
,则调用postProcessBeforeInitialization()
-初始化前的后置处理方法。 - 如果实现了
InitializingBean
接口,则使用afterPropertiesSet()
来初始化属性。 - 如果实现了
BeanPostProcessor
,则调用postProcessAfterInitialization()
-初始化后的后置方法。 - 此时,Bean就可以使用了。
DisposableBean
接口destroy()
销毁Bean。2. Bean的作用范围?
scope:单例,也是默认值。
- prototype:每次Bean请求都会创建一个新的实例。
- request:每次http请求都会创建一个新的Bean。
- session:同一个http session共享一个Bean。
- global session:所有Session共享一个Bean实例。