1. Spring中Bean的生命周期?

  1. Spring启动,查找并加载需要被Spring管理的Bean,进行Bean实例化。(实例化对象)
  2. 使用依赖注入,Spring按照Bean定义信息配置Bean所有属性。(填充属性值及引用)
  3. 注入Aware接口,Spring会检测该对象是否实现了xxxAware接口,并将相关xxxAware实例注入给Bean 。BeanNameAware, BeanFactoryAware, ApplicationContextAware
  4. 如果实现了BeanPostProcessor,则调用postProcessBeforeInitialization()-初始化前的后置处理方法。
  5. 如果实现了InitializingBean接口,则使用afterPropertiesSet()来初始化属性。
  6. 如果实现了BeanPostProcessor,则调用postProcessAfterInitialization()-初始化后的后置方法。
  7. 此时,Bean就可以使用了。
  8. DisposableBean接口destroy()销毁Bean。

    2. Bean的作用范围?

  9. scope:单例,也是默认值。

  10. prototype:每次Bean请求都会创建一个新的实例。
  11. request:每次http请求都会创建一个新的Bean。
  12. session:同一个http session共享一个Bean。
  13. global session:所有Session共享一个Bean实例。