B站连接
https://www.bilibili.com/video/BV12a411r75X/?spm_id_from=333.337.search-card.all.click&vd_source=f0f7ef36d638628b3ab7a240c872017d
SpringBean的生命周期大致上分为五个阶段:
创建前准备:Bean在开始加载之前要从上下文和一些配置中去解析并且查找Bean有关扩展的实现,比如像‘init-method’,容器在初始化Bean的时候或调用的一个方法,destroy-method,容器在销毁Bean的时候会调用的一些方法,以及BeanFactoryPostProcessor这一类的Bean加载过程中的一些前置和后置的一些处理扩展实现,这些类和配置其实是Springr提供给开发者用来去实现Bean加载过程中的一些扩展,在很多和Spring集成的中间件也比较常见,比如Dubbo,这样一些中间件。
创建实例化:这个阶段主要作用是通过反射去创建Bean的实例对象,并且会扫描和解析Bean声明的一些属性
依赖注入:如果被实例化的Bean存在依赖其他Bean对象的一些情况,则需要对这些依赖的Bean进行对象注入,比如常见的@Autowired,以及setter注入等这样一些配置形式,同时在这个阶段会触发一些扩展的调用,比如说常见的扩展类BeanPOSTProcessors用来去实现Bean初始化前后的扩展回调,以及像BeanFactoryAware等等
容器缓存:主要是把Bean保存到容器以及Spring缓存中,到这个阶段的Bean就可以被开发者使用了,这个阶段涉及到的操作像init-method这个属性配置一些方法或者这个阶段会被调用,以及像BeanPOSTProcessors的后置处理器方法也会在这个阶段被触发
销毁实例:当Spring的应用上下文被关闭的时候,那么这个上下文中所有的Bean会被销毁,如果存在了Bean存在了DisposableBean接口或者配置了destroy-method属性的一些方法会在这个阶段被调用
标签:生命周期,扩展,springbean,Bean,调用,阶段,一些,method From: https://www.cnblogs.com/richard713/p/17707691.html