当前位置:网站首页>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这些方法,会在这个阶段调用。
边栏推荐
- 即时通讯开发移动端网络短连接的优化手段
- Parse the commonly used methods in the List interface that are overridden by subclasses
- Solve the docker mysql can't write Chinese
- 「面试必会」这应该是最有深度的TCP三次握手、四次挥手细节讲解
- 笑话:如果你在河边等待得足够久,你会看到你的敌人的尸体漂过,是怎么翻译出来的?
- 【手撕AHB-APB Bridge】~ AMBA总线 之 APB
- golang 源码分析:juju/ratelimit
- Triacetin是什么化学材料
- Translate My Wonderful | July Moli Translation Program Winners Announced
- Five data structures of Redis and their corresponding usage scenarios
猜你喜欢
9,共模抑制比一-不受输入信号中共模波动的影响。【如何分析共模CM抑制比。】
【软件工程导论】软件工程导论笔记
「 每日一练,快乐水题 」1374. 生成每种字符都是奇数个的字符串
OP analysis and design
Parse common methods in the Collection interface that are overridden by subclasses
线程安全(上)
扫码预约 | 观看Apache Linkis数据处理实践以及计算治理能力
The time series database has been developed for 5 years. What problem does it need to solve?
Electron User Guide Beginning Experience
Redis集群配置
随机推荐
4 kmiles join YiSheng group, with more strong ability of digital business, accelerate China's cross-border electricity full domain full growth
一次线上事故,我顿悟了异步的精髓
日志框架学习
ssdp协议搜索GB28181设备
Golang source code analysis: time/rate
ShardingSphere-proxy +PostgreSQL implements read-write separation (static strategy)
力扣每日一题-第46天-344. 反转字符串
AI科学家:自动发现物理系统的隐藏状态变量
J9 digital theory: the Internet across chain bridge has what effect?
实现客户服务自助,打造产品知识库
Thread线程类基本使用(下)
7月29-31 | APACHECON ASIA 2022
程序员也许都缺一个“二舅”精神
golang源码分析之geoip2-golang
Redis集群配置
9,共模抑制比一-不受输入信号中共模波动的影响。【如何分析共模CM抑制比。】
ABAP语法小复习
LeetCode:622. 设计循环队列【模拟循环队列】
Five data structures of Redis and their corresponding usage scenarios
训练双塔检索模型,可以不用query-doc样本了?明星机构联合发文