死记硬背spring bean 的生命周期

1.bean的生命周期

我们平常经常使用类似于new Object()的方式去创建对象,在这个对象没有任何引用的时候,会被gc给回收掉。而对于spring而言,它本身存在一个Ioc容器,就是用来管理对象的,而对象的生命周期也完全由这个容器所控制。Spring 中每个 Bean 的生命周期如下:

2.主要步骤简述

  • 实例化 Bean:通过反射调用构造方法实例化对象。
  • 依赖注入:装配 Bean 的属性。
  • 实现了 Aware接口的 Bean,执行接口方法(如创建bean的名称等等):如顺序执行 BeanNameAware、BeanFactoryAware、ApplicationContextAware的接口方法。
  • Bean 对象初始化前,循环调用实现了 BeanPostProcessor 接口的预初始化方法(postProcessBeforeInitialization)。
  • Bean 对象初始化:顺序执行 @PostConstruct 注解方法、InitializingBean 接口方法、init-method 方法。
  • Bean 对象初始化后,循环调用实现了 BeanPostProcessor 接口的后初始化方法(postProcessAfterInitialization)。
  • 容器关闭时,执行 Bean 对象的销毁方法,顺序是:@PreDestroy 注解方法、DisposableBean 接口方法、destroy-method。

3.一句话概述

spring bean的生命周期主要会经过3个关键步骤,即实例化对象、给对象进行属性注入、对象初始化,只不过在进行对象初始化之前或之后有可能会进行一些自定义的处理,比如对象实现了BeanNameWare接口,可以用来设置bean对象的名称,也比如对象实现了
BeanPostProcessor接口,就可以增加一些自定义的逻辑在该接口的两个方法中。当然对象初始化完成后,最后还可以增加对象的销毁方法,让对象在销毁时进行一些自定义的操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/711336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring之AOP入门

1.AOP介绍 AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构,作用是在不改动原始设计的基础上为其进行功能增强 2.AOP的核心概念 概念定义SpringAOP(注解开发&am…

性能测试-反编译jar

方法一,使用jd-gui 1、官网下载:Java Decompiler 2、下载mac版本后,解压,如下所示: 双击 JD_GUI,提示错误,如下所示: 已经安装了java 17,是java 1.8以上版本&#xff0…

Unity中URP下实现水体(水面高光)

文章目录 前言一、实现高光反射原理1、原理:2、公式: 二、实现1、定义 _SpecularColor 作为高光反射的颜色2、定义 _SpecularIntensity 作为反射系数,控制高光反射的强度3、定义 _Smoothness 作为高光指数,用于模型高光范围4、模拟…

ADO.NET+kafka实现发布订阅保存到数据库

​​​​​​ADO.NETkafka实现发布订阅保存到数据库 在.NET应用程序中,ADO.NET通常用于数据库操作,而Apache Kafka是一个分布式流处理平台,它允许发布(Producer)和订阅(Consumer)消息流。使用A…

深入理解c指针(四)

目录 六、assert断言 七、指针的使用和传址调用 1、strlen的模拟实现 2、传值调用和传址调用 3、练习-字符串逆序 在深入理解c指针&#xff08;三&#xff09;提到&#xff0c;在实际使用指针前可以检测其是否指到有效空间&#xff1a; #include<stdio.h> int mai…

度量与评估客户体验:以客户为中心的方法和工具

在当今的市场环境中&#xff0c;客户体验已经成为企业成功的关键因素。一个优秀的客户体验不仅能够提升客户满意度&#xff0c;增强客户忠诚度&#xff0c;还能够吸引新的潜在客户。然而&#xff0c;要实现这一目标&#xff0c;企业首先需要了解如何度量和评估客户体验。本文将…

day08_分类品牌管理商品规格管理商品管理

文章目录 1 分类品牌管理1.1 菜单添加1.2 表结构介绍1.3 页面制作1.4 品牌列表加载1.4.1 后端接口BrandControllerBrandServiceBrandMapperBrandMapper.xml 1.4.2 前端对接brand.jscategoryBrand.vue 1.5 分类数据加载1.6 列表查询1.6.1 需求说明1.6.2 后端接口需求分析Categor…

linux nasm汇编中调用printf不报错,但调用scanf报错。抛出了分段错误(核心转储)

当我写了如下汇编时 ; nasm -f elf64 -g -F dwarf charsin.asm ; gcc charsin.o -no-pie -o charsin ; ld -o eatclib eatclib.o ; gdb eatclib[SECTION .data]SPrompt db Enter string data, followed by Enter: ,0IPrompt db Enter an integer value, followed by Enter: ,1…

Python进阶教学一

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、函数1.高阶函数2.返回函数3.匿名函数4.装饰器 二、实例1.类和实例2.限制访问3. 继承和多态4.实例属性和类属性 一、函数 1.高阶函数 1.1 map1.2 reduce1.3 fi…

Dsco Dropship EDI需求分析

供应商要想从Dsco处通过EDI获取订单&#xff0c;需要部署自己的EDI系统&#xff0c;与Dsco的EDI供应商CommerceHub 建立连接&#xff0c;分为两个方向&#xff1a; 1.从CommerceHub 的 Dsco 平台获取 EDI 850 采购订单 2.向Dsco发送库存&#xff08;846&#xff09;、订单状态…

MySQL的内外连接

1.内连接 内连接实际上就是利用 WHERE 子句&#xff08;连接条件&#xff09;对两张表形成的笛卡尔积&#xff08;内连接&#xff09;进行筛选&#xff0c;我们之前学习的查询基本都是内连接&#xff0c;也是在实际生产中被使用得最多的连接查询。 另外内连接还可以使用下面的…

Java Swing游戏开发学习7

内容来自RyiSnow视频讲解 这一节实现的是背景音乐和音效的播放。 在这里&#xff0c;背景音乐和音效所用的音频文件均为wav格式文件。Java SDK默认支持的格式有限&#xff0c;默认不支持mp3格式音乐。 背景音乐、拾取钥匙、拾取靴子、开门分别有对应的音频文件。 作者的实现…

2024-02学习笔记

1.当我们向Set集合中添加一个已经存在的元素时 当我们向Set集合中添加一个已经存在的元素时&#xff0c;Set集合会如何处理呢&#xff1f;实际上&#xff0c;Set集合不会将重复的元素添加到集合中。当我们向Set集合中添加一个元素时&#xff0c;Set集合会首先判断该元素是否已…

Ubuntu-22.04安装MegaCLI并查看MegaRAID的配置

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、MegaRAID二、安装MegaCLI1.Ubuntu-18.042.Ubuntu-22.043.Ubuntu-20.044.CentOS-75.其它发行版 三、使用MegaCLI1.查看所有适配器信息2.查看所有物理磁盘信息…

华为配置WLAN高密业务示例

配置WLAN高密业务示例 组网图形 图1 配置高密WLAN环境网络部署组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 体育场由于需要接入用户数量很大&#xff0c;AP间部署距离较小&#xff0c;因此AP间的干扰较大&#xff0c;可能导致用户上网网…

新王炸:文生视频Sora模型发布,能否引爆AI芯片热潮

前言 前方高能预警&#xff0c;Sora来袭&#xff01; 浅析Sora的技术亮点 语言模型中构建关键词联系 视频素材分解为时空碎片 扩散模型DiT Not for play, But change world! OpenAI的宏大目标 未来已来&#xff0c;只是尚未流行 Sora的成本与OpenAI的7万亿美金豪赌 算…

【探索AI】人人都在讲AIGC,什么是AIGC?

AIGC 概述示例展示我们日常用到的一些工具/应用核心技术介绍核心技术的算法解析案例及部分代码实现1. 艺术作品2. 设计项目3. 影视特效4. 广告创意总结 一张图先了解下&#xff1a; 概述 "人工智能生成创造&#xff08;Artificial Intelligence Generated Content&#x…

从CPU缓存结构到原子操作

一、CPU缓存结构 1.1 CPU的多级缓存 因为CPU的计算速度非常快&#xff0c;但内存的访问速度相对较慢。因此&#xff0c;如果CPU每次都要从内存读取数据&#xff0c;会造成大量的等待时间&#xff0c;降低整体性能。 通过引入多级缓存&#xff0c;可以在CPU和内存之间建立数据…

vue3中实现elementPlus表格选中行的上移下移

先看效果&#xff1a; 实现步骤&#xff1a; 1、给el-table添加current-change事件、高亮属性及ref属性 2、给上移下移按钮添加事件 // 定义当前选中的行参数 const currentRow ref<any>(null); // 定义表格的ref const singleTableRef ref(); // 行选中事件 const ha…

正信晟锦:借了钱的人一直不接电话不回信息咋办

在金钱往来中&#xff0c;遇到借出的钱款无法按时回收&#xff0c;且借款人如同人间蒸发一般不接电话、不回信息&#xff0c;确实让人焦虑。面对这种情形&#xff0c;我们需采取明智而有效的措施&#xff0c;以保护自身的权益。 首要策略是保持冷静&#xff0c;不要让情绪主导行…