SpringBean的生命周期
创始人
2024-06-03 12:57:00
0

SpringBean的生命周期

1 启动spring容器,就是创建beanFactory工厂,就是applicationcontext,通过applicationcontext加载配置文件,或者利用注解将bean加载到spring容器里面
2 加载之后,spring容器会对这些bean进行封装,封装成beandefinition对象,就是普通的java对象上再封装一层,赋予spring框架需要用到的属性,比如是否单例,是否懒加载
3 将这些beandefinition对象以kye为beanname,值为beandefinition对象的形式存入到map里面,将这个map传入到spring beanfactory去进行springbean的实例化
4 传入到spring beanfactory之后,利用beanfactoryPostProcessor接口去对beandefinition对象进行一些修改
5 开始循环beandefinition对springbean的实例化,就是执行bean的构造方法(单例bean放入单例池,但是此刻还未初始化),
在执行实例化的前后,可以通过instantiationAwareBeanPostProcessor扩展点对bean进行修改
6 springbean实例化之后,就开始注入属性,比如标注@autoware的属性,再调用各种aware接口扩展方法,注入属性,比如beanaNameAware.setName,设置bean的id或者name
7 初始化bean,对各项属性赋值,初始化前后执行beanPostProcessor扩展方法,对bean进行修改
初始化前后除了beanPostProcessor扩展点还有其他扩展点,例如:
1 初始化前 postProcessBeforeInitialization()
2 执行构造方法之后 执行@postConstruct方法
3 所有属性赋初始化值之后 afterPropertiesSet()方法
4 初始化 配置文件中指定的init-method方法
5 初始化后 postProcessAfterInitialization()

	先执行BeanPostProcessor扩展点的前置方法postProcessBeforeInitialization(),再执行bean本身的构造方法再执行@PostConstruct标注的方法所有属性赋值完成之后执行afterPropertiesSet()然后执行 配置文件或注解中指定的 init-method 方法最后执行BeanPostProcessor扩展点的后置方法postProcessAfterInitialization()

8 此时已完成bean的初始化,在程序中就可以通过spring容器拿到这些初始化后的bean
9 随着容器销毁,springbean也会销毁,销毁bean之前,会执行@PreDestroy的方法,销毁时,执行配置文件中指定的 destroy-method方法

综上所述,其实就是根据配置文件或者注解信息,生成beanDefinition对象,循环beanDefinition去实例化bean
-> 注入/填充属性 -> 初始化前(@postConstruct) -> 初始化(afterPropertiesSet()) -> 初始化后(是否要AOP) -> 销毁

相关内容

热门资讯

数字华夏完成天使+轮融资 深圳... (转自:观点网)观点网讯:7月14日,深圳具身智能企业数字华夏宣布已完成天使+轮融资,并正启动第二轮...
今日谈:破除“内卷式”竞争,夯... 本文转自【人民日报】原标题:破除“内卷式”竞争,夯实发展之基(今日谈)今年上半年,我国汽车产销量首次...
“烟草虎”张天峰,被开除党籍! 2025.07.14本文字数:550,阅读时长大约1分钟封图 | 张天峰 资料图据中央纪委国家监委网...
这座新桥,开放试通行! 转自:珠海发布街坊好友们,您的心事小布愿意听。小布对于大家的“急难愁盼”,不仅会掏出小本本认真记录,...
鲍威尔又遇辞退风险?特朗普顾问...   白宫经济顾问凯文·哈塞特上周日表示,美联储主席杰罗姆·鲍威尔的职位可能面临风险,具体取决于其对美...
【法治副校长牵手法治小记者】以... 来源:法治日报 法治日报全媒体记者 王春 通讯员 许高悦法治副校长:俞露烟,女,1982年出生,现任...
东莞控股跌2.04%,成交额6... 7月14日,东莞控股盘中下跌2.04%,截至11:12,报11.02元/股,成交6040.71万元,...
巨力索具跌2.03%,成交额6... 7月14日,巨力索具盘中下跌2.03%,截至11:12,报7.25元/股,成交6.48亿元,换手率9...
晋拓股份涨2.61%,成交额6... 7月14日,晋拓股份盘中上涨2.61%,截至11:12,报18.47元/股,成交6564.05万元,...
国补政策确认本月恢复第二阶段7... “补贴是不是提前结束了?” 过去两周,不少消费者在申领家电、手机 “以旧换新” 补贴时,页面突然提示...