Bean的生命周期

目录

1、实例化Bean

2、设置Bean的属性

3、初始化Bean

(1)、执行通知

(2)、初始化的前置方法

(3)、初始化方法

(4)、执行自定义方法

(5)、初始化的后置方法

4、使用Bean

5、销毁Bean

(1)、DestructionAwareBeanPostProcessor接口

(2)、DisposableBean接口

(3)、自定义方法


 

 

1、实例化Bean

实例化Bean就是为其分配内存空间。当客户端向容器请求一个尚未初始化的bean时,容器就会调用doCreateBean()方法进行实例化。

2、设置Bean的属性

当Bean的实例创建完成后就会对其进行属性设置,也就是依赖注入,将依赖的Bean复制到当前类的属性上。

3、初始化Bean

实例化和属性设置是 Java 级别的系统"事件",操作过程不可人工干预和修改的。而初始化则是给开发者提供的,可以在实例化之后、类加载完成之前进行自定义"事件"处理。

(1)、执行通知

执行各种Aware通知的方法:BeanNameAware、BeanFactoryAware、ApplicationContextAware等接口方法。通过这些接口可以让我们拿到BeanName、BeanFactory等资源。

(2)、初始化的前置方法

执行BeanPostProcessor的初始化前置方法postProcessBeforelnitialization(),对Bean进行一些自定义的前置处理。

(3)、初始化方法

依赖注入操作之后执行@PostConstruct的初始化方法。

(4)、执行自定义方法

如果有指定init-method()方法,就执行用户自定义的初始化方法

(5)、初始化的后置方法

执行BeanPostProcessor的初始化后置方法

4、使用Bean

初始化完成就表示Bean创建成功,之后就可以使用这个Bean。当该Bean不再需要时,就进行销毁操作。

5、销毁Bean

销毁Bean对象时执行@PreDestroy的销毁方法

(1)、DestructionAwareBeanPostProcessor接口

判断Bean是否实现DestructionAwareBeanPostProcessor接口,如果实现就执行DestructionAwareBeanPostProcessor后置处理器的销毁回调方法。

(2)、DisposableBean接口

判断Bean是否实现DisposableBean接口,如果实现就调用其实现的destroy()方法

(3)、自定义方法

判断这个Bean是否配置自定义的销毁方法,如果有就调用其配置的销毁方法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

API接口:如何通过使用手机归属地查询

随着手机普及率的不断增加,手机号码的信息查询也成为了一个非常实用的功能。本文将介绍如何通过使用手机归属地查询API接口实现查询手机号码所在地的功能。 首先,我们需要一个可以查询手机号码所在地的API接口。目前市面上有很多免费或付费的API接口可供…

《Ansible自动化工具篇:ubuntu操作系统基于ansible工具一键远程离线部署之K8S1.24.12二进制版集群》

一、部署背景 由于业务系统的特殊性,我们需要针对不同的客户环境部署二进制版K8S集群,由于大都数用户都是专网环境,无法使用外网,为了更便捷,高效的部署,针对业务系统的特性,我这边编写了 基于a…

uni-app中的uni.requireNativePlugin()

这个方法是用来引入原生插件的方法,自 HBuilderX 1.4 版本起,uni-app 支持引入原生插件,使用方式如下: const PluginName uni.requireNativePlugin(PluginName); // PluginName 为原生插件名称 引入插件的类型有三种&#xff1…

【idea工具】idea工具,build的时候提示:程序包 com.xxx.xx不存在的错误

idea工具,build的时候提示:程序包 com.xxx.xx不存在的错误,如下图,折腾了好一会, 做了如下操作还是不行,idea工具编译的时候,还是提示 程序包不存在。 a. idea中,重新导入项目,也还…

Mysql-主从复制与读写分离

Mysql 主从复制、读写分离 一、前言:二、主从复制原理1.MySQL的复制类型2. MySQL主从复制的工作过程;3.MySQL主从复制延迟4. MySQL 有几种同步方式:5.Mysql应用场景 三、主从复制实验1.主从服务器时间同步1.1 master服务器配置1.2 两台SLAVE服务器配置 2…

小程序自定义步骤条实现

效果展示&#xff1a; 支持背景颜色自定义 <view class"hl_steps"><view class"hl_steps_item" wx:for"{{steps}}" wx:key"id"><view class"hl_steps_item_circle_out" style"background-color: {{col…

【Linux网络】 网络套接字(三)socket编程_TCP网络程序

目录 TCP网络程序服务端创建套接字并绑定服务端监听服务端获取连接服务器处理请求 客户端客户端创建套接字客户端连接服务器客户端发起请求测试 服务器存在的问题多进程版的TCP网络程序多线程版的TCP网络程序线程池版的TCP网络程序 TCP网络程序总结图 TCP网络程序 服务端 创建…

踩坑_vertical-align

目录 问题&#xff1a;vertical-align属性语法父元素的基线怎么找呢&#xff1f;特殊元素的基线行盒 解决 问题&#xff1a; 今天在做一个需求时遇到了如下问题&#xff1a; 代码 <style>*{margin:0;padding:0;}#app{width: 300px;height: 117px;background: #FFFFFF;bo…

通过v-for生成的input无法连续输入

部分代码&#xff1a;通过v-for循环生成el-form-item&#xff0c;生成多个描述输入框 更改之前的代码&#xff08;key绑定的是item&#xff09;&#xff1a; <el-form-item class"forminput" v-for"(item,index) in formdata.description" :key"…

打造高效便捷的采购管理平台,提升企业采购效率

随着企业规模的扩大和供应链的日益复杂&#xff0c;传统的手工采购管理方式已经不能满足企业的需求。采购管理平台的出现为企业提供了一个集中、高效、便捷的采购管理工具。本文将重点探讨采购管理平台的意义与作用&#xff0c;并介绍如何打造一个高效便捷的采购管理平台。 一、…

PHY芯片的使用(三)在linux下网络PHY的移植

1 前言 配置设备树请参考上一章。此次说明还是以裕太的YT8511芯片为例。 2 需要配置的文件及路径 a. 在 .. /drivers/net/phy 目录下添加 yt_phy.c 文件&#xff08;一般来说该驱动文件由厂家提供&#xff09;&#xff1b; b. 修改.. /drivers/net/phy 目录下的 Kconfig 文…

欧盟新规,燃油噩梦?2025年起,高速公路每60公里设立一处快充站

根据外媒The Verge报道&#xff0c;欧洲电动汽车用户将获得更多便捷的待遇&#xff0c;同时还能减少有害温室气体排放&#xff0c;这得益于欧盟理事会最新通过的法规。 根据欧盟的法规要求&#xff0c;自2025年起&#xff0c;TEN-T高速公路系统在欧洲将需要每隔60公里设立一座高…

C# List 详解六

目录 35.MemberwiseClone() 36.Remove(T) 37.RemoveAll(Predicate) 38.RemoveAt(Int32) 39.RemoveRange(Int32, Int32) 40.Reverse() 41.Reverse(Int32, Int32) C# List 详解一 1.Add(T)&#xff0c;2.AddRange(IEnumerable)&#xff0c;3…

【Linux】冯诺依曼体系结构思想

冯诺依曼体系结构 冯诺依曼体系结构冯诺依曼体系结构的五大部分冯诺依曼体系结构的运行过程存储器中的木桶效应扩展&#xff1a;计算机存储设备金字塔实例&#xff1a;qq聊天数据传输过程 &#x1f340;小结&#x1f340; &#x1f389;博客主页&#xff1a;小智_x0___0x_ &…

手机+App=电脑静音无线鼠标 - WiFimouse初体验

应用情景 大晚上的别人在睡觉&#xff0c;自己又不得不使用电脑&#xff08;台式&#xff09;&#xff0c;鼠标点点点又吵。 专门买个静音鼠标又没钱&#xff0c;咋办~ 效果图 手机app 电脑无线触控板&#xff0c;零噪音&#xff01; 可以单击、移动鼠标光标、可以上下滚动…

MinIO在Linux环境下单机安装部署

1、MinIO是什么&#xff1f; MinIO 是一个基于 Go语言实现的高性能对象存储。它采用AGPL&#xff08;GNU Affero General Public License&#xff09; 开源协议并兼容 S3 协议。 官网地址&#xff1a;https://min.io/ github地址&#xff1a;https://github.com/minio/minio …

【活动总结】0723-COC深圳社区职言职语第1季活动总结之第1视角

0723-COC深圳社区职言职语第1季活动总结 地球有自转&#xff0c;活动不能断&#xff0c;话题不能停。一场愉快的户外职场的畅谈交流会&#xff0c;就这样落下了帷幕…请大家跟随我的第一视角&#xff0c;一起看看我们的活动现场吧。 文章目录 1 活动简介2 活动过程2.1 活动宣传…

「旅游小攻略」广东河源

Hello 小伙伴们好呀&#xff0c;我是爱折腾的 jsliang~ 今天主要安利的&#xff0c;是「广东省/河源市/源城区」附近的逛吃逛吃。 特别适合 2 天 1 夜、3 天 2 夜的&#xff0c;自驾游或者随心走的小伙伴&#xff0c;随着本篇攻略嗨起来吧~ 更多了解欢迎加 WX&#xff1a;Liang…

练习时长两年半的网络安全防御“first”

1.网络安全常识及术语 下边基于这次攻击演示我们介绍一下网络安全的一些常识和术语。 资产 任何对组织业务具有价值的信息资产&#xff0c;包括计算机硬件、通信设施、 IT 环境、数据库、软件、文档资料、信息服务和人员等。 网络安全 网络安全是指网络系统的硬件、软件及…