Spring Bean的实例化和初始化

Bean初始化执行顺序

  • 1、构造方法
  • 2、以来注入、属性设置
  • 3、@PostConstruct注解的方法(反射机制调用)
  • 4、afterPropertiesSet方法(实现InitializingBean接口)
  • 5、init-method指定的方法(xml中,通过反射机制调用)
  • 6、bean自己玩耍
  • 7、destory-method指定的方法(xml中,通过反射机制调用)
  • 8、destroy方法(实现DisposableBean接口)
  • 9、@PreDestroy注解的方法(反射机制调用)

    @PostConstruct和 init-method方法都是通过反射调用,所以效率不高,建议使用方法3

@PostConstruct和@PreDestroy 实现原理

@PostConstruct和@PreDestroy是通过Spring的后置处理器InitDestroyAnnotationBeanPostProcessor实现功能,如图:

InitDestroyAnnotationBeanPostProcessor