关于Spring Bean的生命周期

article/2025/8/24 3:23:26

一、简介
    Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一个实例,而不是每次都产生一个新的对象使用Singleton模式产生单一实例,在spring中,singleton属性默认是true,只有设定为false,则每次指定别名取得的Bean时都会产生一个新的实例,Spring只帮我们管理单例模式Bean的完整生命周期,对于prototype的bean,Spring在创建好交给使用者之后则不会再管理后续的生命周期。

二、图例
    生命周期图如下:
    
    也可以概括为:
    
    
三、图例说明
1、实例化一个Bean
2、按照Spring上下文对实例化的Bean进行配置,也就是IOC注入
3、如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String)方法,传递的参数就是Spring配置文件中Bean的id值


4、如果这个Bean已经实现了BeanFactoryAware接口,会调用它实现的setBeanFactory(BeanFactory),传递的是Spring工厂自身


5、如果这个Bean已经实现了ApplicationContextAware接口,会调用setApplicationContext(ApplicationContext)方法,传入Spring上下文


6、如果这个Bean关联了BeanPostProcessor接口,将会调用postProcessBeforeInitialization(Object obj, String s)方法,
BeanPostProcessor经常被用作是Bean内容的更改,并且由于这个是在Bean初始化结束时调用那个的方法,也可以被应用于内存或缓存技术;


7、如果Bean在Spring配置文件中配置了init-method属性会自动调用其配置的初始化方法。
8、如果这个Bean关联了BeanPostProcessor接口,将会调用postProcessAfterInitialization(Object obj, String s)方法
9、当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用那个其实现的destroy()方法;


10、最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法。


http://chatgpt.dhexx.cn/article/vjKo83Ew.shtml

相关文章

7、Bean的生命周期

Spring其实就是一个管理Bean对象的工厂。它负责对象的创建,对象的销毁等。 所谓的生命周期就是:对象从创建开始到最终销毁的整个过程。 什么时候创建Bean对象? 创建Bean对象的前后会调用什么方法? Bean对象什么时候销毁&#…

【一篇搞懂】 bean的生命周期详解

概述 Spring中的一个Bean从生到灭要经历很多过程,总体分为Bean定义、实例化、属性赋值(依赖注入)、初始化、生存期、销毁几个阶段: ​​​​​​​​ 下面是一个细化的Bean生命周期图: 过程比较复杂,重点关注Bean的定义、初始化、销毁过程,可以抓住重点: BeanPostPro…

Bean 生命周期详解

Spring Bean 的生命周期,面试时非常容易问,这不,前段时间就有个粉丝去字节面试,因为不会回答这个问题,一面都没有过。 如果只讲基础知识,感觉和网上大多数文章没有区别,但是我又想写得稍微深入…

【Spring】Spring的Bean的生命周期

作者简介:大家好,我是五度鱼,一个普通的Java领域博主,不停输出Java技术博客和干货。座右铭:锲而不舍,金石可镂。个人主页:五度鱼学Java的主页 文章目录 前言1. 什么是Bean的生命周期&#xff1f…

Spring中bean的生命周期(最详细)

Spring Bean的生命周期是Spring面试热点问题。Spring Bean的生命周期指的是从一个普通的Java类变成Bean的过程,深知Spring源码的人都知道这个给面试官讲的话大可讲30分钟以上,如果你不没有学习过Spring的源码,可能就知道Aware接口和调用init方…

Bean的生命周期

目录 一,bean的初始化 (1)Spring的IOC和AOP: (2)Spring Bean的生命周期: 二,单例模式与多例模式的区别 区别 《代码演示》 前言 回顾:Servlet的生命 初始化&#x…

bean的生命周期(最全最细讲解)

一、bean生命周期: 其定义为:从对象的创建到销毁的过程。而Spring中的一个Bean从开始到结束经历很多过程,但总体可以分为六个阶段Bean定义、实例化、属性赋值、初始化、生存期、销毁。 二、案例代码演示 1.首先我们来创建一个包&#xff0…

去字节面试,直接让人出门左拐:Bean 生命周期都不知道!

Spring Bean 的生命周期,面试时非常容易问,这不,前段时间就有个粉丝去字节面试,因为不会回答这个问题,一面都没有过。 如果只讲基础知识,感觉和网上大多数文章没有区别,但是我又想写得稍微深入…

Spring Bean生命周期,好像人的一生。。

大家好,我是老三,上节我们手撸了一个简单的IOC容器五分钟,手撸一个Spring容器!,这节我们来看一看Spring中Bean的生命周期,我发现,和人的一生真的很像。 简单说说IoC和Bean IoC,控制…

Spring中bean的生命周期

Spring中的bean的生命周期主要包含四个阶段:实例化Bean --> Bean属性填充 --> 初始化Bean -->销毁Bean 首先是实例化Bean,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚末初…

一文读懂 Spring Bean 的生命周期

欢迎大家关注我的微信公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。 一、前言 今天我们来说一说 Spring Bean 的生命周期,小伙伴们应该在面试中经常遇到,这是正常现象。…

ubuntu 换源深层次解析

换源也是一个容易出错的问题,本文以树莓派为例展开,x86也是一样的操作。 那么假设成立的话,就要记住我们是在树莓派(arm)上安装的ubuntu,不是X86,不是amd。 安装好系统后,我们第一…

[Linux]Ubuntu 换源 20.04 阿里源

注意,这篇文章其实不是简单的教你怎么换源,而是示例一种方法来换20.04的阿里源,其他源和版本大同小异。 笔者在写这篇文章的时候,20.04 还没有release出来正式版,但是已经可以在仓库里看到有源存在了,故写下…

Ubuntu换源详解,教你如何换源,并且解决常见的大坑

Ubuntu换源详解,教你如何换源,并且解决常见的大坑 记一次极不愉快的一次经历 首先注意,换源必须选择合适的版本,不可以在网上找一个下载源就直接去换 出现错误1: 由于没有公钥,无法验证下列签名 :NO_PUBK…

ubuntu 换源

网上应该可以找到很多关于ubuntu源的设置方法,但是如果不搞清楚就随便设置的话,不仅不能起到应有的效果,还会由于一些问题导致apt不可用。 最正确的更换源的方法应该如系统提示的: ## a.) add apt_preserve_sources_list: true …

20.04Ubuntu换源:提升软件下载速度和更新效率

在使用Ubuntu操作系统时,一个常见的优化措施是更改软件源,以提高软件下载速度和更新效率。软件源是指存储软件包的服务器,通过更换软件源,你可以选择更靠近你所在地区的服务器,从而加快软件下载速度,并减少…

Ubuntu快速更换源

Ubuntu更换源,零基础操作 提示:跟着一步步来,很快完成操作 为什么要换源?安装的linux系统默认的源是国外的,当用命令行安装软件(比如安装gcc)时下载速度非常慢,这里将源换成国内阿里…

Ubuntu系统换源

简单介绍一下源,源就是一个大仓库(类似应用商店),系统下载软件需要从这个仓库下载,因为Ubuntu默认源是国外的,所以在下载东西的时候会出现下载速度很慢的情况,所以我们需要更换成国内的源&#…

ubuntu linux 换源,给Ubuntu换源

新手在使用Ubuntu的时候可能在升级时感觉很慢,如果这样他就需要换一个适合自己的源了。 下面我就简单的说一下怎样换源。 在终端里输入 sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup (表示备份列表) 再输入 sudo gedit /etc/apt/sources.list 你就能…

ubuntu换源

ubuntu源 ubuntu换源方法1. 图形界面配置(新手推荐)2. 手动更改配置文件2.1 命令行替换2.2 手动替换 ubuntu的镜像源阿里源清华源中科大源 ubuntu换源方法 1. 图形界面配置(新手推荐) 依次打开:系统设置,…