3-Bean的生命周期

Bean的生命周期

创建对象和初始化是在AbstractAutowireCapableBeanFactory.doCreateBean()中完成的

  • 创建对象

    • 实例化(构造方法)
    • 依赖注入
  • 初始化

    • 执行Aware接口回调
    • 执行BeanPostProcessor.postProcessBeforeInitialization
    • 执行InitializingBean回调(先执行@PostConstruct)
    • 执行BeanPostProcessor.postProcessAfterInitialization
  • 使用对象

  • 销毁对象

    • 执行DisposableBean回调(先执行@PreDestroy)

在这里插入图片描述

在这里插入图片描述

总结

问题:请聊一聊Bean的生命周期

答案:

:Bean的生命周期总的来说有4个阶段,分别是创建对象,初始化对象,使用对象以及销毁对象,而且这些工作大部分都是交给Bean工厂的doCreateBean方法完成的

  • 首先,在创建对象阶段,先调用构造方法实例化对象,对象有了后会填充该对象的内容,其实就是处理依赖注入

  • 其次,对象创建完毕后,需要做一些初始化的操作,在这里涉及到几个扩展点

    1. 执行Aware感知接口的回调方法

    2. 执行Bean后置处理器的postProcessBeforeInitialization方法

    3. 执行InitializingBean接口的回调,在这一步如果Bean中有标注了@PostConstruct注解的方法,会先执行它

    4. 执行Bean后置处理器的postProcessAfterInitialization方法

      把这些扩展点都执行完,Bean的初始化就完成了

  • 接下来,在使用阶段就是程序员从容器中获取该Bean使用即可

  • 最后,在容器销毁之前,会先销毁对象,此时会执行DisposableBean接口的回调,在这一步如果Bean中有标注了@PreDestroy注解的方法,会先执行它

:简单总结一下,Bean的生命周期分为4个阶段,其中初始化对象和销毁对象我们程序员可以通过一些扩展点执行自己的代码

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

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

相关文章

ShardingSphere 5.x 系列【15】分布式主键生成器

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址:https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 概述2. 配置3. 内置算法3.1 UUID3.2 Snowflake3.3 NanoId3.4 CosId3.5 Co…

PostgreSQL教程(四):高级特性

一、简介 在之前的章节里我们已经涉及了使用SQL在PostgreSQL中存储和访问数据的基础知识。现在我们将要讨论SQL中一些更高级的特性,这些特性有助于简化管理和防止数据丢失或损坏。最后,我们还将介绍一些PostgreSQL扩展。 本章有时将引用教程&#xff0…

Rust之构建命令行程序(四):用TDD(测试-驱动-开发)模式来开发库的功能

开发环境 Windows 11Rust 1.75.0 VS Code 1.86.2 项目工程 这次创建了新的工程minigrep. 用测试-驱动模式来开发库的功能 既然我们已经将逻辑提取到src/lib.rs中,并将参数收集和错误处理留在src/main.rs中,那么为代码的核心功能编写测试就容易多了。我…

Opencv实战(2)绘图与图像操作

Opencv实战(2)绘图与图像操作 指路前文:Opencv实战(1)读取与像素操作 三、基本绘图 文章目录 Opencv实战(2)绘图与图像操作三、基本绘图(1).line(2).rectangle(3).circle 四、图像处理(1).颜色空间1.意义2.cvtColor()3.inRange()4.适应光线 (2).形态操作1.腐蚀2.膨…

【软件架构】01-架构的概述

1、定义 软件架构就是软件的顶层结构 RUP(统一过程开发)4 1 视图 1)逻辑视图: 描述系统的功能、组件和它们之间的关系。它主要关注系统的静态结构,包括类、接口、包、模块等,并用于表示系统的组织结构…

unity hub (第一部)初学配置

1、安装Unity Hub 2、设置中文 3、安装编辑器 4、新建项目 5、新建完成后进入编辑器 6、 编辑器设置中文 editPreferencesLanguages选择中文

mysql的日志文件在哪?

阅读本文之前请参阅----MySQL 数据库安装教程详解(linux系统和windows系统) MySQL的日志文件通常包括错误日志、查询日志、慢查询日志和二进制日志等。这些日志文件的位置取决于MySQL的安装和配置。以下是一些常见的日志文件位置和如何找到它们&#xff…

Android Studio基础(下载安装与简单使用)

1、搭建Android开发平台 1.1 Android Studio 下载地址及版本说明 Android 开发者官网: https://developer.android.com/index.html(全球,需科学上网) https://developer.android.google.cn/index.html(国内&#xff…

【Flink精讲】Flink任务调度机制

Graph 的概念 Flink 中的执行图可以分成四层: StreamGraph -> JobGraph -> ExecutionGraph -> 物理执 行图。 StreamGraph:是根据用户通过 Stream API 编写的代码生成的最初的图。用来表示程序的拓扑结构。JobGraph: StreamGraph …

Spring篇----第三篇

系列文章目录 文章目录 系列文章目录前言一、使用 Spring 有哪些方式?二、什么是 Spring IOC 容器?三、什么是依赖注入?四、可以通过多少种方式完成依赖注入?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这…

【MATLAB】 EWT信号分解+FFT傅里叶频谱变换组合算法

有意向获取代码,请转文末观看代码获取方式~ 展示出图效果 1 EWT分解算法 EWT分解算法是一种基于小波变换的信号分解算法,它可以将信号分解为一系列具有不同频率特性的小波分量。该算法的基本思想是将信号分解为多个不同尺度的小波分量,并对…

了解网络延迟-MDN文档学习笔记

了解延迟 查看更多学习笔记:GitHub:LoveEmiliaForever MDN中文官网 CDN CDN (内容分发网络) 指的是一组分布在各个地区的服务器 这些服务器存储着数据的副本,因此服务器可以根据哪些服务器与用户距离最近,来满足数据的请求 CD…

BUUCTF crypto做题记录(8)新手向

一、密码学心声 得到信息如下图 背景故事没什么信息,主要看曲谱。大概率不会让我们涉及与音乐有关的内容,题目中也提示说答案是一串字符串,所以我们可以猜测是将曲谱上的数字转化成字符。曲谱中文字提示是用ASCII码进行转换。没有数字8可能是…

iOS面试:4.多线程GCD

一、多线程基础知识 1.1 什么是进程? 进程是指在系统中正在运行的一个应用程序。对于电脑而已,你打开一个软件,就相当于开启了一个进程。对于手机而已,你打开了一个APP,就相当于开启了一个进程。 1.2 什么是线程&am…

Java核心-核心类与API(2)

话接上回,继续核心类与API的学习,这次介绍StringBuffer/StringBuilder/StringJoiner类。StringBuffer和StringBuilder是我们学习的重点,建议对比学习,做好区分。 一、StringBuffer类 1、概述 1)问题 由于 String 类…

Django学习记录04——靓号管理整合

1.靓号表 1.1 表结构 1.2 靓号表的构造 class PrettyNum(models.Model): 靓号表 mobile models.CharField(verbose_name"手机号", max_length11)# default 默认值# null true,blank true 允许为空price models.IntegerField(verbose_name"价…

websocket了解下

websocket请求长啥样 GET /chat HTTP/1.1 Host: example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ Sec-WebSocket-Version: 13 啥是websocket websocket是http的一种,服务器可以主动向客户端推送信息,…

18个惊艳的可视化大屏(第七辑):场馆与园区方向

本期分享智慧场馆和智慧园区方向的可视化大屏,各位老铁上车,坐稳了,上图啦。

计算机组成原理(12)----多处理系统

目录 1.SISD(单指令流单数据流) (1)特性 (2)硬件组成 2.SIMD(单指令流多数据流) (1)特性 (2)硬件组成 3.MISD(多指…

数字孪生低代码平台盘点(一):厂家介绍

特别说明:本文根据网上资料搜集整理而成,排名不分先后,配图是为了更好地阅读体验,并非表明该图为该平台所生产。如有错误之处,请在评论区提出。 一、优锘ChartBuilder 优锘ChartBuilder是一款基于Web的数据可视化工具…