Spring 中Bean的生命周期

article/2025/8/24 3:25:22

目录

Bean的生命周期

五个阶段

下面是一个bean对象创建到销毁经历过的方法。

图示​

问答

普通Java类是在哪一步变成beanDefinition的


推荐视频:

阿里专家耗时一年,终于把Spring源码AOP、IOC、Ben生命周期、事物、设计模式以及循环依赖讲全了_哔哩哔哩_bilibili

Bean的生命周期

五个阶段

1.创建前准备

2.正式创建bean (实例化,在堆区分配内存,属性为默认值)

3.依赖注入,主要是给属性赋值 (初始化)

4.执行相关的初始化方法  (初始化)

    使用bean

5.bean的销毁

下面是一个bean对象创建到销毁经历过的方法。

==================现在开始初始化容器==================
1.1 [BeanFactoryPostProcessor]这是BeanFactoryPostProcessor实现类构造器!!
1.2 [BeanFactoryPostProcessor]BeanFactoryPostProcessor调用postProcessBeanFactory方法
1.3 [BeanPostProcessor]这是BeanPostProcessor实现类构造器!!
1.4 [InstantiationAwareBeanPostProcessorAdapter]这是InstantiationAwareBeanPostProcessorAdapter实现类构造器!!
1.5 [InstantiationAwareBeanPostProcessorAdapter]InstantiationAwareBeanPostProcessor调用postProcessBeforeInstantiation方法


2.1 [Person]【构造器】调用Person的构造器实例化
2.2 [InstantiationAwareBeanPostProcessorAdapter]InstantiationAwareBeanPostProcessor调用postProcessPropertyValues方法


3.1 [Person]【注入属性】注入属性address
3.1 [Person]【注入属性】注入属性name
3.1 [Person]【注入属性】注入属性phone
3.2 [Person]【BeanNameAware接口】调用BeanNameAware.setBeanName()
3.3 [Person]【BeanFactoryAware接口】调用BeanFactoryAware.setBeanFactory()
3.4 [BeanPostProcessor]BeanPostProcessor接口方法postProcessBeforeInitialization对属性进行更改!
3.5 [Person]【InitializingBean接口】调用InitializingBean.afterPropertiesSet()


4.1 [Person]【init-method】调用<bean>的init-method属性指定的初始化方法
4.2 [BeanPostProcessor]BeanPostProcessor接口方法postProcessAfterInitialization对属性进行更改!
4.3 [InstantiationAwareBeanPostProcessorAdapter]调用postProcessAfterInitialization方法


==================容器初始化成功==================

使用bean
Person [address=广州, name=张三, phone=110]


==================现在开始关闭容器!==================
5.1 [Person]【DiposibleBean接口】调用DiposibleBean.destory()
5.2 [Person]【destroy-method】调用<bean>的destroy-method属性指定的初始化方法

图示

 

 

问题

普通Java类是在哪一步变成beanDefinition的

不用spring的时候 普通Java类对象的创建:

而在spring中是所有的对象都是bean,普通Java类在创建前准备后就会正式成为bean,之后就是依赖注入,最后初始化。

参考

Spring 了解Bean的一生(生命周期)_浅然的专栏-CSDN博客_简述bean的生命周期

Spring Bean的生命周期(非常详细) - Chandler Qian - 博客园

Spring面试7连问|Bean的生命周期|AOP底层原理|@Autowired、@Resource、Configuration底层原理|事务底层原理|启动步骤_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1hp4y1h7Di/?spm_id_from=333.788.recommend_more_video.0细说Spring——IOC详解(Bean的生命周期)_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Pv411q7XM?from=search&seid=15511048826781431632&spm_id_from=333.337.0.0


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

相关文章

Spring之Bean的生命周期详解

通过前面多个接口的介绍了解了Bean对象生命周期相关的方法&#xff0c;本文就将这些接口的方法串起来&#xff0c;来了解Bean的完整的生命周期。而介绍Bean的生命周期也是面试过程中经常会碰到的一个问题&#xff0c;如果不注意就跳坑里啦~~ Spring之Bean对象的初始化和销毁方法…

Bean的生命周期及演示

文章目录 一、介绍概念Bean生命周期组成&#xff1a; 二、实例演示 一、介绍 概念 Bean的生命周期是指一个Bean对象从创建到销毁的整个存在过程。 Bean生命周期组成&#xff1a; 1.实例化Bean&#xff08;为Bean分配内存空间&#xff09; 2.属性注入 (Bean注入和装配) 3.Bean…

面试题:Spring Bean的生命周期

最近在复习Spring的面试题&#xff0c;关于Spring Bean的生命周期一直没有很深入的理解&#xff0c;自己结合源码参考了网上的几篇文章&#xff0c;写了一点东西&#xff0c;方便理解。 Spring 启动&#xff0c;查找并加载需要被 Spring 管理的 Bean&#xff0c;进行 Bean 的…

Bean的生命周期和作用域

Bean的生命周期 Bean的执行流程&#xff1a; Bean 执行流程&#xff1a;启动Spring 容器 -> 实例化 Bean&#xff08;分配内存空间&#xff0c;从无到有&#xff09;-> Bean 注册到 Spring 中&#xff08;存操作&#xff09; -> 将 Bean 装配到需要的类中&#xff08;…

关于Spring Bean的生命周期

一、简介 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置&#xff0c;从BeanFactory或ApplicationContext取得的实例为Singleton&#xff0c;也就是预设为每一个Bean的别名只能维持一个实例&#xff0c;而不是每次都产生一个新的对象使用Singleton模式产生单一实…

7、Bean的生命周期

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

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

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

Bean 生命周期详解

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

【Spring】Spring的Bean的生命周期

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

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

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

Bean的生命周期

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

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

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

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

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

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

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

Spring中bean的生命周期

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

一文读懂 Spring Bean 的生命周期

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

ubuntu 换源深层次解析

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

[Linux]Ubuntu 换源 20.04 阿里源

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

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

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

ubuntu 换源

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