spring bean的生命周期你了解么

news/2024/5/21 1:51:59

Spring Bean的生命周期是指在Spring容器中创建、初始化、使用和销毁Bean实例的整个过程。理解Spring Bean的生命周期对于开发者来说非常重要,因为它涉及到在不同的生命周期阶段执行自定义逻辑的机会。下面是关于Spring Bean生命周期的详细解释,包括各个阶段的说明和示例代码:

  1. 实例化(Instantiation)
    在容器启动时,Spring会根据Bean的定义创建Bean的实例。这通常发生在调用构造函数时,可以是默认构造函数或带参数的构造函数。

    public class MyBean {public MyBean() {// 构造函数被调用}
    }
    
  2. 设定属性值(Set Properties)
    在实例化之后,Spring容器会设置Bean的属性值,这些值可以通过配置文件或注解指定。

    public class MyBean {private String name;public void setName(String name) {this.name = name;}
    }
    
  3. Bean初始化(Initialization)
    在所有属性被设置之后,Spring容器会调用Bean的初始化方法,可以通过@PostConstruct注解或实现InitializingBean接口来指定。

    import javax.annotation.PostConstruct;public class MyBean {@PostConstructpublic void init() {// 初始化方法被调用}
    }
    
  4. Bean就绪(Ready for Use)
    当初始化完成后,Bean即可用于依赖注入或其他操作。

  5. 销毁(Destruction)
    当容器关闭或者手动销毁Bean时,Spring容器会调用Bean的销毁方法,可以通过@PreDestroy注解或实现DisposableBean接口来指定。

    import javax.annotation.PreDestroy;public class MyBean {@PreDestroypublic void destroy() {// 销毁方法被调用}
    }
    

上述代码示例演示了Bean生命周期的各个阶段,其中使用了注解方式来定义初始化和销毁方法。当然,也可以通过XML配置文件或Java配置类来指定Bean的生命周期方法。

总的来说,Spring Bean的生命周期包括实例化、属性设置、初始化、就绪和销毁这几个重要阶段,开发者可以根据自己的需求在这些阶段中添加自定义逻辑。


http://www.mrgr.cn/p/87846323

相关文章

qt实现窗口B始终显示在窗口A上,且上层窗口在电脑任务栏不显示缩图

场景:窗口A上面始终显示窗口B(透明背景) /*****************************************/ 首先,在主窗口即底部窗口重写changeEvent QtGuiApplication1::QtGuiApplication1(QWidget *parent) : QWidget(parent) , m_pQtGuiClass(nullptr) {ui.setupUi(this);setWindowFlags(Q…

微信开发者工具请求接口 Provisional headers are shown

前情最近全权负责公司小程序项目的开发,使用的uniapp技术栈。 坑在和服务端联调的时候发现,接口pending很久,而且时不时的报Provisional headers are shown,而且出现的概率很大方法尝试?有可能是浏览器插件拦截了,把有可能推荐的插件全停了也没有用 有可能是防火墙拦截了…

从面试官视角出发,聊聊产品经理的面试攻略

一、请进行自我介绍 这题基本是面试的开胃菜了,估计面试多的,自己答案都能倒背如流啦。 其实自我介绍还是蛮重要的,对我来说主要有 3 个作用:面试准备、能力预估、思维评估。 面试准备:面试官每天都要面 3 ~6 人&am…

Excel文件解析---超大Excel文件读写

1.使用POI写入 当我们想在Excel文件中写入100w条数据时,使用XSSFWorkbook进行写入时会发现,只有将100w条数据全部加载到内存后才会用write()方法统一写入,效率很低,所以我们引入了SXXFWorkbook进行超大Excel文件读写。 通过设置 …

INS 论文分享:一种用于交通流预测的多通道时空Transformer模型

本文主要介绍了我们在长期交通流预测方面的最新研究成果,该成果已发表在信息学领域的顶级期刊《Information Sciences》上,论文题目为《A Multi-Channel Spatial-Temporal Transformer Model for Traffic Flow Forecasting》。该论文的第一作者及通讯作者…

流媒体学习之路(WebRTC)——GCC中ProbeBitrateEstimator和AcknowledgedBitrateEstimator的大作用(7)

流媒体学习之路(WebRTC)——GCC中ProbeBitrateEstimator和AcknowledgedBitrateEstimator的大作用(7) —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标:可以让大家熟悉各类Qos能力、带宽估计能力&a…

移动端定位打卡

签到按钮脚本 Mobile_NS.getCurrPosition(function(result){var lngdangq = result["lng"];var lathoum = result["lat"];var minDistance = null;//alert("addr"+addr);var dkzt = $f("dkzt").val();//alert(dkzt);if(dkzt==0){//$f(…

steam错误代码118?报错118?手把手教你应对Steam错误代码攻略

steam是由美国游戏开发公司Valve开发的一款数字发行、数字版权管理、多人游戏和社交平台。它最初是为Valve公司所开发的游戏而设计的,但现在已经发展成为游戏行业最大的数字发行平台之一。Steam平台提供了丰富的游戏资源,包括最新的独立游戏、大型多人在…

3秒修复老照片,一键智能变高清!

你肯定有一些年代久远的老照片,以及网络下载的图片或视频,不够高清还非常模糊,如果能一键修复成高清就好了!现在推荐一款神奇的Real-ESRGAN镜像,可以将模糊老照片和视频修复成高清晰,动动手分分钟帮你一键焕新!操作指南这就马上附上!你肯定有一些年代久远的老照片,以及…

EC11的中断实验——NVICEXTI

本文隶属于《GD32 示波器项目软件部分重难点及相关疑问解决》 4-EC11的中断实验——NVIC&EXTI 4-1 实验目标以及原理图 GD32E230外部中断EXTI(中断/事件控制器)包括21个相互独立的边沿检测电路并且能够向处理器内核产生中断请求或唤醒事件。EXTI有三种触发类型:上升沿触…

使用stable diffusion设计logo的提示词

使用stable diffusion设计logo的提示词 Stable Diffusion是一种基于图像处理和机器学习的算法,可以用于生成各种类型的图像,包括Logo设计。本文将介绍如何使用Stable Diffusion来设计Logo,并提供一些提示词以帮助读者更好地理解和应用这种技术。 1.了解Stable Diffusion的基…

方正字体 3.0 和 5.0 的比较

默认字体就是宋体(方正书宋)主要区别在于英文字体。5.0 中的斜体、宋体、黑体和楷体的英文字体都变化较大。 个人认为 5.0 更为合理。因为斜体和楷体本身就是较为接近手写字体的字体。而 5.0 中的英文斜体和楷体改的更像手写了。

实验四——代码审查

一、实验题目 :代码审查 二、实验目的 1、熟悉编码风格,利用开发环境所提供的平台工具对代码进行自动格式审查; 2、根据代码规范制定代码走查表,并按所制定的审查规范互审代码。 三、实验内容 1、IDEA环境和PyCharm环境二选一; IDEA环境 (1)预先准备在IDEA环境下实现对输…

vue开发网站—①调用$notify弹窗、②$notify弹窗层级问题、③js判断两个数组是否相同等。

一、vue中如何使用vant的 $notify(展示通知) 在Vue中使用Vant组件库的$notify方法来展示通知,首先确保正确安装了Vant并在项目中引入了Notify组件。 1.安装vant npm install vant --save# 或者使用yarn yarn add vant2.引入:在ma…

nginx--压缩https证书favicon.iconginx隐藏版本号 去掉nginxopenSSL

压缩功能 简介 Nginx⽀持对指定类型的⽂件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文件大小将比源文件显著变小,这样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相应的CPU资源…

VBA_NZ系列工具NZ06:VBA创建PDF文件说明

我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑,这么多知识点该如何组织…

ssrf漏洞学习——基础知识

一、SSRF是什么? SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。 一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能…

《架构风清扬-Java面试系列第29讲》聊聊DelayQueue的使用场景

DelayQueue是BlockingQueue接口的一个实现类之一 这个属于基础性问题,老规矩,我们将从使用场景和代码示例来进行讲解 来,思考片刻,给出你的答案 1,使用场景 实现:延迟队列,其中元素只有在其预定…

layui的treeTable组件,多层级上传按钮失效的问题解决

现象描述: layui的treeTable 的上传按钮在一层能用,展开后其他按钮正常点击,上传按钮无效。 具体原因没有深究,大概率是展开的子菜单没有被渲染treeTable的done管理到,导致没有重绘上传按钮。 解决方案: 不使用layu的上传组件方法…