IOC课程整理-9

news2024/11/28 14:44:24

0 总览

1. Spring Bean 元信息配置阶段

2. Spring Bean 元信息解析阶段

3. Spring Bean 注册阶段

4. Spring BeanDefinition 合并阶段

5. Spring Bean Class 加载阶段

6. Spring Bean 实例化前阶段

InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation 若返回为null,则返回默认的实例对象 若返回不为null,则此对象为最终返回的对象,也就是实例化了一个与配置文件中不同的新的对象

7. Spring Bean 实例化阶段

8. Spring Bean 实例化后阶段

实例化后赋值前的操作

9. Spring Bean 属性赋值前阶段

10. Spring Bean Aware接口回调阶段

11. Spring Bean 初始化前阶段

12. Spring Bean 初始化阶段

13. Spring Bean 初始化后阶段

14. Spring Bean 初始化完成阶段

15. Spring Bean 销毁前阶段

16. Spring Bean 销毁阶段

17. Spring Bean 垃圾收集

18. 面试题

1 BeanPostProcessor 的使用场景有哪些

BeanPostProcessor 提供 Spring Bean 初始化前和初始化后的生命周期回调,分别对应 postProcessBeforeInitialization 以及postProcessAfterInitialization 方法,允许对关心的Bean 进行扩展,甚至是替换。 加分项:其中,ApplicationContext 相关的 Aware 回调也是基于BeanPostProcessor 实现,即 ApplicationContextAwareProcessor

2  BeanFactoryPostProcessor 与BeanPostProcessor 的区别

BeanFactoryPostProcessor 是 Spring BeanFactory(实际为ConfigurableListableBeanFactory) 的后置处理器,用于扩展BeanFactory,或通过 BeanFactory 进行依赖查找和依赖注入。加分项:BeanFactoryPostProcessor 必须有 Spring ApplicationContext 执行,BeanFactory 无法与其直接交互。 而 BeanPostProcessor 则直接与BeanFactory 关联,属于N 对1 的关系

3 BeanFactory 是怎样处理Bean 生命周期

BeanFactory 的默认实现为 DefaultListableBeanFactory,其中 Bean生命周期与方法映射如下:

• BeanDefinition 注册阶段 - registerBeanDefinition

• BeanDefinition 合并阶段 - getMergedBeanDefinition

• Bean 实例化前阶段 - resolveBeforeInstantiation

• Bean 实例化阶段 - createBeanInstance

• Bean 初始化后阶段 - populateBean

• Bean 属性赋值前阶段 - populateBean

• Bean 属性赋值阶段 - populateBean

• Bean Aware 接口回调阶段 - initializeBean

• Bean 初始化前阶段 - initializeBean

• Bean 初始化阶段 - initializeBean

• Bean 初始化后阶段 - initializeBean

• Bean 初始化完成阶段 - preInstantiateSingletons

• Bean 销毁前阶段 - destroyBean • Bean 销毁阶段 - destroyBean

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实战经验分享FastAPI 是什么

FastAPI 是什么?FastAPI实战经验分享 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7e9e23e6fe3444238413d91f37064b65.png](https://fastapi.tiangolo.com/) FastAPI 是一个先进、高效的 Python Web 框架,专门用于构建基于 Python 的 API。它是…

【扩散模型】HuggingFace Diffusers实战

HuggingFace Diffusers实战 1. 环境准备2. DreamBooth2.1 Stable Diffusion简介2.2 DreamBooth 3. Diffusers核心API4. 实战:生成美丽的蝴蝶图像4.1 下载数据集4.2 调度器4.3 定义扩散模型4.4 创建扩散模型训练循环4.5 图像的生成方法1.建立一个管线方法2.写一个采样…

python:使用Scikit-image对遥感影像进行小波变换特征提取(wavelet)

作者:CSDN @ _养乐多_ 在本博客中,我们将介绍如何使用Scikit-image库进行单波段遥感图像的特征提取,重点关注小波变换方法,特别是Gabor滤波器。我们将详细解释代码中的参数以及如何调整它们以满足不同需求。 小波变换是一种数学工具,用于将信号分解成不同尺度和频率的成…

CAN协议详解

1.CAN 协议概述 简介 CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。是一种串行的差分总线&#x…

TLSF——一种高效的内存池实现

Arena 起源于计算内核关于堆内存使用的相关优化。 系统调用分配和回收内存的开销较大,一个优化是预先通过系统调用分配一大块内存,然后每次内存使用从大块内存中切出一小份内存使用。 Arena用于维护大块内存切分出来的大量小块内存,达到高效…

网站不被谷歌收录的常见原因及解决办法

现如今的互联网中,流量获取的渠道多种多样,但对于独立站而言,Google仍然是一个重要的流量来源。这是因为Google拥有庞大的用户基础,通过Google可以让潜在用户更容易发现我们的网站。然而,现实情况是,一些网…

STM32 — PWM介绍和使用PWM实现呼吸灯效果

目录 PWM介绍 PWM输出模式: PWM占空比: PWM周期与频率公式: 使用PWM点亮LED灯实现呼吸灯效果 1. 在 SYS 选项里,将 Debug 设为 Serial Wire​编辑 2. 将 RCC 里的 HSE 设置为 Crystal/Ceramic Resonator 3. 时钟配置 4.配…

信息系统项目管理师教程 第四版【第3章-信息系统治理-思维导图】

信息系统项目管理师教程 第四版【第3章-信息系统治理-思维导图】

信息系统项目管理师教程 第四版【第2章-信息技术发展-思维导图】

信息系统项目管理师教程 第四版【第2章-信息技术发展-思维导图】

视频格式高效转换:MP4视频批量转MKV格式的方法

随着数字媒体技术的不断发展,视频格式转换已经成为了我们日常工作中不可或缺的一部分。不同的视频格式适用于不同的场景和设备,因此将视频从一种格式转换为另一种格式往往是我们必须完成的任务。在本文中,我们将重点介绍如何运用云炫AI智剪高…

读图数据库实战笔记02_图数据建模

1. 概念 1.1. 实体 1.1.1. 通常用名词来表示 1.1.2. 描述一个领域中的事物或者事物类型 1.1.2.1. 汽车 1.1.2.2. 用户 1.1.2.3. 地理位置 1.1.3. 在逻辑模型和技术实现过程中,实体通常会变成“顶点” 1.2. 关系 1.2.1. 用动词(或动词短语&#…

SpringCloud 微服务全栈体系(六)

第八章 Gateway 服务网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管…

RK3568平台 IIC子系统框架

一.简介 IIC只有两条线,一条串行数据线SDA;一条是时钟线SCL。使用SCL,SDA这两条线就实现了设备之间的数据交互。 I2C通信可以一对一(1个主设备对1个从设备),也可以一对多(1个主设备对多个从设…

React Router初学者入门指南(2023版)

React Router,简单来说,是一个帮助处理React应用程序中导航和路由的库。它是用于管理React中路由的最流行的路由工具。如果你对路由的概念不熟悉,可以将其视为在网站的不同部分之间导航的过程。例如,当你进入网站的“联系我们”部…

UE5实现相机水平矫正

UE5实现相机水平矫正 思路,用HIT获得基于相机视角的 离散采样点,然后根据距离相机距离进行权重分析。 距离越近,采样约中心,即越接近人眼注意点,最后算出加权平均高度,赋予给相机,相机将水平旋…

C++ -- 深入理解多态

前言:多态的概念,通俗地来讲就是多种形态。当我们要完成某个行为的时候,不同的对象去完成时会产生不同的状态,这就叫做多态。具体点就是去完成某个行为,当不同的对象去完成时会 产生出不同的状态。多态在C的类和对象中…

python裁剪图片

我原本想找到一个小一点的彩色人脸数据集,但是都没有找到合适的 但是我找到了一个人脸数据集的封面 于是我把这两个图片裁开,得到了6464张彩色人脸照片 from PIL import Image# 打开大图 big_image Image.open(female.jpg) # 获取大图的宽度和高度 wid…

windows 系统不设置密码也能远程登陆

前言 如果windows系统不设置密码,默认情况下是不能远程登陆的 解决办法 按下winr,输入gpedit.msc 再回车 点击windows设置 ----安全设置 ------本地策略-----安全选项 设置为禁用 远程就可以不输入密码了

PMI-ACP(103:1-16)

英文名:ACP 外文名:Agile Certified Practitioner 中文名:敏捷管理专业人士资格认证 是由 美国项目管理协会 PMI Project Management Institute 发起的,严格评估项目管理人员知识技能是否具有高品质的资格认证。 一年开展4次考…

摆玩具[算法赛](差分)

本题链接:用户登录 题目: 样例: 输入 5 2 2 5 7 10 13 输出 8 思路: 由题意,这是一个递增的数组,其次要求最小的极差,对 数组 进行分成 k 个分段数组。 由于是一个递增的数组&#xf…