Bean的生命周期详解
这一类的Bean加载过程中的一些前置和后置的一些处理扩展实现,这些类或者配置,其实是Spring提供给我们来去实现Bean加载过程中的一些扩展在很多的和Spring集成的中间件也比较常见。,这个阶段的主要作用就是把Bean保存到容器,以及Spring的缓存中。第五个阶段就是销毁实例阶段,当Spring的应用上下文被关闭的时候,那么上下文中所有的Bean就会被销毁,如果存在Bean配置了。,如果被实
Bean的生命周期大可分为五个阶段,分别是
创建前准备
,
创建实例化
,
依赖注入
,
容器缓存
,和
销毁实例
。
创建前准备
这个阶段的主要作用就是Bean在开始加载之前要从上下文和一些配置中,去解析查找Bean有关的扩展实现。比如说像init-method
,容器在初始化Bean的时候会调用的一个方法;destroy-method
容器在销毁Bean的时候会调用的方法;以及BeanFactoryPostProcessor()
,spring给我们提供的扩展类方法。这一类的Bean加载过程中的一些前置和后置的一些处理扩展实现,这些类或者配置,其实是Spring提供给我们来去实现Bean加载过程中的一些扩展在很多的和Spring集成的中间件也比较常见。
创建实例化
第二个阶段是创建实例阶段,这个阶段的主要作用是通过反射创建Bean的实例对象。并且会扫描和解析Bean声名的一些属性。这步完成时,Bean得对象已经创建了出来,但是Spring Bean并不对外使用。
依赖注入
第三个阶段是依赖注入阶段,如果被实例化的Bean存在依赖其他Bean的情况,则需要对这些依赖的Bean进行对象注入。比如常见的@Autowired
注解注入或者setter()
在xml文件注入等这样一些配置形式。同时在这个阶段会触发一些扩展的调用,比如说常见的扩展类BeanPostProcessors后置处理器
用来实现Bean初始化前后的扩展回调以及像BeanFactoryAware
等等
容器缓存
第四个阶段是容器缓存阶段,这个阶段的主要作用就是把Bean保存到容器,以及Spring的缓存中。到了这个阶段的Bean其实以及可以被开发者调用了。这个阶段涉及的操作常见的比如init-method
,这个属性配置的一些方法会这个阶段会被调用;以及像BeanPostProcessoes后置处理器方法
也会在这个阶段触发。
销毁实例
第五个阶段就是销毁实例阶段,当Spring的应用上下文被关闭的时候,那么上下文中所有的Bean就会被销毁,如果存在Bean配置了destroy-method
这些方法,会在这个阶段调用。
更多推荐
所有评论(0)