栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【spring基础】bean的生命周期详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【spring基础】bean的生命周期详解

参考黑马程序员视频https://www.bilibili.com/video/BV15b4y117RJ?p=143&spm_id_from=pageDriver
理解一些总结概念:
1.context就是我们所说的容器,有子容器还有父容器。
2.bean之间有依赖关系,这种关系决定了他们的创建顺序
3.context.fresh()方法就是去创建获取bean。
4.有三种scope范围的创建销毁bean,scope实际是决定了什么时候触发创建什么时候销毁
5.可通过不同方式去创建bean(例如autowiredannotation,默认构造)
6.beanpostprocessor叫做"bean后处理器",作用是识别注解并封装为injectionmetadata注解元数据,由注解元数据类完成注入操作。
7.bean在要创建时首先会去检查三级缓存,三级缓存同时又解决了循环依赖,之后会去检查容器(分子父容器)先去子容器查找。

1.创建bean的整体流程

第一阶段


三级缓存解决了循环依赖

第二阶段

先找子容器里面的bean子容器找不到然后找父容器里面的bean。
第三阶段
控制bean的创建顺序(没有显示依赖)

第四阶段
按照scope属性去创建
常见的三种scope的生存范围
第一种:单例范围

refresh开始到close结束。
refresh还是调用了getbean方法
第二种:多例模式bean

只有在调用了容器的getbean方法时才会创建bbean
销毁需要手动调用
第三种request
同样也是在getbean方法的时候进行创建操作

scope总结

prototype就是我们说的多例bean

阶段五 创建bean


创建bean的方式

刚建立的bean需要建立依赖,也就是注入其他bean可以想象springboot注册@Service等等,就可以在本层使用该bean。

优先级越往下越高

之后我们要初始化bean:
1.实现aware接口
2.三种初始化方法
3.创建aop代理

以上初始化方法执行顺序为
aware接口,注解,接口(initializingbean),自定义(beandefinition)
对应下面输出4213

最后需要标记销毁bean

自定义scope包括request等。

第六阶段类型转换

第七阶段销毁bean

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/733250.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号