Spring生命周期

书中人 2022年03月30日 4,767次浏览
  • 无参构造方法new对象

  • 依赖注入 @Autowired (三级缓存)

  • 初始化前 @PostConstruct

  • 初始化 实现InitializingBean的afterPropertiesSet方法,可以做一些验证,或者属性的注入

  • 初始化后Aop,(前置后置处理器)

  • 单例池SingteObjectMap

  • Bean对象 getBean() 获取


声明周期简答

  1. 扫描并解析类得到BeanDfinition
  2. 推断构造方法,并实例化一个对象
  3. 进行属性填充,比如加了@autowired注解的属性
  4. 回调Aware方法,比如BeanNameAware,BeanFactoryAware
  5. 回调BeanPostProcessor的初始化前的方法
  6. 调用初始化方法。比如执行静态方法,@PostConstruct方法
  7. 调用BeanPostProcessor的初始化后的方法,Aop的切入点
  8. 对于单利bean则放入单利池
  9. getBean等使用bean
  10. DisposableBean中的destory方法在容器关闭是销毁bean

spring spi自动配置注解

@SpringBootApplication
@EnableAutoConfiguration
@Import(AutoConfigurationImportSelector.class)
getAutoConfigurationEntry方法执行spi扫表到全限定名String[]