每天一道面试题:Spring的Bean生命周期
Spring的Bean生命周期包括以下步骤:
1、实例化(Instantiation):当Spring容器接收到创建Bean的请求时,它会先实例化Bean对象。这个过程可以通过构造函数、工厂方法或者反序列化等方式完成;
2、属性赋值(Populate Properties):在实例化Bean对象后,Spring容器会通过setter方法或者直接访问Bean对象的成员变量来为Bean对象的属性赋值。这个过程通过XML配置文件、注解或者Java代码来完成;
3、初始化(Initialization):在属性赋值完成之后,Spring容器会调用Bean对象的初始化方法。这个过程可以通过实现IntializingBean接口、使用@PostConstruct注解或者在XML配置文件中指定init-method方法来完成;
4、使用(Using):在初始化完成之后,Bean对象就可以被Spring容器使用了,它可以被注入到其他Bean中,或者通过Spring容器来获取它的实例;
5、销毁(Destruction):当Spring容器关闭时,它会调用Bean对象的销毁方法。这个过程可以通过实现DisposableBean接口、使用@PreDestroy注解或者在XML配置文件中指定destroy-method方法来完成。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*注意:
需要注意的是,Spring的Bean生命周期不是固定的,它可以通过自定义BeanPostProcessor来扩展或修改。BeanPostProcessor是一种特殊的Bean,它可以在Bean的实例化、属性赋值、初始化和销毁过程中插入自己的逻辑。
每天一道面试题:Spring的Bean生命周期的更多相关文章
- Spring中Bean生命周期
Spring中的bean生命周期是一个重要的点,只有理解Bean的生命周期,在开发中会对你理解代码是非常有用的.对于Bean的周期,个人认为可以分为四个阶段.第一阶段:Bean的实例化,在该阶段主要是 ...
- Spring:Bean生命周期
关于Bean生命周期,我在网上找了两张图: 图1: 图2: 总结起来就是: Bean构建: Bean对象创建 > @Autowired | @Resource> @PostConstruc ...
- Spring的Bean生命周期理解
首先,在经历过很多次的面试之后,一直不能很好的叙述关于springbean的生命周期这个概念.今日对于springBean的生命周期进行一个总结. 一.springBean的生命周期: 如下图所示: ...
- 2.Spring的Bean生命周期和组装方式
1.Spring IoC容器概述 Spring IoC容器: Spring容器即体现了IoC原理 Spring容器通过读取配置元数据负责对Beans实例化.配置和装配 配置元数据可以用X ...
- Spring 的 Bean 生命周期,11 张高清流程图及代码,深度解析
在网上已经有跟多Bean的生命周期的博客,但是很多都是基于比较老的版本了,最近吧整个流程化成了一个流程图.待会儿使用流程图,说明以及代码的形式来说明整个声明周期的流程.注意因为代码比较多,这里的流程图 ...
- spring学习笔记(四)我对spring中bean生命周期的理解
我相信大部分同学对spring中bean的生命周期都不陌生,但是如果要详细的说出每一个步骤,可能能说出来的也不多,我之前也是这样,前几天调了一下spring的源码,看了一点书,突然一下明朗了,理解了s ...
- spring注解-bean生命周期
https://www.jianshu.com/p/70b935f2b3fe bean的生命周期 bean创建---初始化----销毁的过程 容器管理bean的生命周期 对象创建:容器启动后调用bea ...
- Spring配置文件-Bean生命周期配置(init-method方法,destory-method方法)
1.UserDaoImpl类 public class UserDaoImpl implements UserDao { public UserDaoImpl(){ System.out.printl ...
- [转]Spring 之 Bean 生命周期
Spring 容器中可以注册多个后处理器,只要它们同时实现 org.springframework.core.Ordered 接口. 下载文件 :内容来自 <精通Spring+4.x++企业应用 ...
- Spring源码系列 — Bean生命周期
前言 上篇文章中介绍了Spring容器的扩展点,这个是在Bean的创建过程之前执行的逻辑.承接扩展点之后,就是Spring容器的另一个核心:Bean的生命周期过程.这个生命周期过程大致经历了一下的几个 ...
随机推荐
- 记一次,使用python实现一键在爱发电发布带图片的动态
1.背景 本人喜欢转载一些youtube上的视频到b站上面,然后就会有些观众想要视频的封面,那我总不可能一个一个发吧,太麻烦了.故打算将资源发布到爱发电上面.但是爱发电却没有公开对应的api,只能自己 ...
- Linux修改Python软链接
Linux修改python软链接 0. 适用场景及基础知识 适用场景: 有些自带的是python3命令,嫌输入太麻烦,可以修改成python命令 有些自带是python是python2,想修改成pyt ...
- dotnet平台Http消息处理者工厂
1 前言 Microsoft.Extensions.Http是一个设计非常优异的客户端工厂库,其提供了IHttpClientFactory用于创建HttpClient和IHttpMessageHand ...
- [NISACTF 2022]bingdundun~
[NISACTF 2022]bingdundun~ 考点 文件上传.Phar://伪协议 一.题目 打开题目,发现是一道文件上传的题目,因为提示了可以压缩包,所以尝试直接上传zip文件,然后利用PHP ...
- Python基础 - 比较运算符
以下假设变量a为10,变量b为20: 运算符 描述 实例 == 等于 - 比较对象是否相等 (a == b) 返回 False. != 不等于 - 比较两个对象是否不相等 (a != b) 返回 tr ...
- HTML入门笔记1
一.HTML是谁发明的? 1990年Tim Berners Lee发明了www(world wide web万维网),为了方面人们于阅读网页,与此同时自己又发明了HTML.HTTP.URL:用自己写的 ...
- 一次 HPC 病毒感染与解决经历
周一的时候,有同事反馈说,HPC 的项目报告路径正在不断产生 *.exe 和 *.pif 文件,怀疑是不是被病毒感染! 收到信息,第一时间进去目录,的确发现该目录每个几秒钟就自动生成一个 *.exe ...
- tomghost
思路: 先使用端口扫描,会发现22,8009,8080 8009的考察点:tomcat ajp协程属性设置导致的文件读取和文件执行. https://github.com/00theway/Ghost ...
- 自研ORM 完美支持 Exists查询 非常灵活
示例代码 Case 1 Code var data = db.Query<Product>() .Where(w => db.Query<Product>().Where ...
- SRE 的工作介绍
哈喽大家好,我是咸鱼 今天看到了一篇很不错的文章,作者是一名 SRE 工程师,在 Shopee 工作,base 新加坡 分享出来给大家看看 作者:卡瓦邦噶 原文链接:https://www.kawab ...