当前位置:网站首页>Bena的生命周期
Bena的生命周期
2022-08-02 20:02:00 【blanceage】
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这些方法,会在这个阶段调用。
边栏推荐
猜你喜欢
A Review of Nature Microbiology: Focusing on the Algae--Ecological Interface of Phytoplankton-Bacteria Interactions
实现fashion_minst服装图像分类
SQL Server实现group_concat功能
PG 之 SQL执行计划
特拉维夫大学 | Efficient Long-Text Understanding with Short-Text Models(使用短文本模型进行高效的长文本理解)
Solve the docker mysql can't write Chinese
[安洵杯 2019]easy_web
B站HR对面试者声称其核心用户都是生活中的Loser
9,共模抑制比一-不受输入信号中共模波动的影响。【如何分析共模CM抑制比。】
一款好用的FAQ搭建工具
随机推荐
A Review of Nature Microbiology: Focusing on the Algae--Ecological Interface of Phytoplankton-Bacteria Interactions
MySQL安装配置教程(超级详细、保姆级)
Wintun:一款惊艳的 WireGuard 虚拟网卡接口驱动
Solve the docker mysql can't write Chinese
Leetcode刷题——字符串相加相关题目(415. 字符串相加、面试题 02.05. 链表求和、2. 两数相加)
二丙二醇甲醚醋酸酯
实现fashion_minst服装图像分类
【LeetCode】1161. 最大层内元素和
【软件工程导论】软件工程导论笔记
Async的线程池使用的哪个?
The so-called fighting skill again gao also afraid of the chopper - partition, depots, table, and the merits of the distributed
Electron User Guide Beginning Experience
一次线上事故,我顿悟了异步的精髓
LeetCode - 105. 从前序与中序遍历序列构造二叉树;023.合并K个升序链表
解析Collection接口中的常用的被实现子类重写的方法
ALV report learning summary
腾讯云孟凡杰:我所经历的云原生降本增效最佳实践案例
网上那么多教人赚钱的方法,但是你实际上是靠什么赚钱的呢?
Qt提升自定义控件,找不到头文件
ECCV 2022 | 通往数据高效的Transformer目标检测器