Bean的生命周期

132 阅读1分钟

Bean生命周期:指的是Bean从创建到销毁的过程,分4大类:

1. 实例化

  • a.无参构造方法实例化、静态工厂方式实例化、实例工厂方式实例化        
    

2. 属性赋值

  •   a.解析自动装配(byName、byType、constractor、none、@Autowired) DI体现
    

1.jpg autodetect在Spring3.0+弃用了。

  •   b.循环依赖
    

3. 初始化

  • a.调用XXAware回调
    • 调用BeanNameAware的setBeanName()方法传入当前的Bean的id值
    • 调用BeanfactoryAware的setBeanFactory()方法传入当前工厂的实例的引用
    • 调用ApplicationContextAware的setApplicationContext()方法传入当前的ApplicationContext实例的引用.........
  • b.调用初始化生命周期回调(三种)
    • 通过注解的方式,@PostConstruct
    • 通过接口InitialingBean
    • 通过配置指定方法,init-monthod
  • c.如果BeanPostProcessor和Bean关联,则调用postProcessBeforeInitialzation()对Bean进行讲过操作,实现aop,创建动态代理

4. 销毁

  • 在Spring容器关闭的时候进行调用
  • 调用销毁的生命周期回调
    • 通过注解的方式,@PreDestroy
    • 通过接口,DisposableBean,Spring会调用destory()方法将Spring中的bean销毁
    • 通过配置指定方法,destroy-method

2.png