Spring中Bean的生命周期

Spring中Bean的生命周期

分4大步:

一:Bean实例化及依赖注入

  1. 扫描定义bean的XML文件/java配置类/注解
  2. 创建bean实例
  3. 对bean的属性进行依赖注入

二:检测Spring相关的Aware接口

  1. 如果实现了BeanNameAware接口,就调用setBeanName()方法
  2. 如果实现了BeanClassLoaderAware接口,就调用setBeanClassLoader()方法
  3. 如果实现了ApplicationContextAware接口,就调用setApplicationContext()方法

三:Bean生命周期中的创建回调

  1. 如果检测到@PostConstruct,就调用被注解的方法
  2. 如果实现了InitializingBean,就调用afterPropertiesSet()方法
  3. 如果XML文件中<bean init-method>指定了初始化方法,就调用指定的方法

四:Bean生命周期中的销毁回调

  1. 如果检测到@PreDestroy,就调用被注解的方法
  2. 如果实现了DisposableBean,就调用destroy()方法
  3. 如果XML文件中<bean destroy-method>指定了销毁方法,就调用指定的方法(对scope为prototype的bean不进行这一步)

转载于:https://my.oschina.net/lhplj/blog/757272