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实例。
