孙哥Spring源码第19集

news2025/1/16 16:11:18

第19集 refresh()-invokeBeanFactoryPostProcessor 三- Import三种形式的处理过程

【视频来源于:B站up主孙帅suns Spring源码视频】【微信号:suns45】

1、ImportBeanDefinitionRegister的处理过程

image-20230512152744677
在processImports处理@Import注解中 ImportBeanDefinitionRegister形式的
1. 分析到ImportBeanDefinitionRegister仅仅是进行了实例化工作。最后把他添加到了configClass中
2. 不支持在ImportBeanDefinitionRegister中在引入@Import注解
3. 处理完成后,同样没有创建BD 更没有进行注册

2、不递归处理ImportBeanDefinitionRegister的原因

不支持在ImportBeanDefinitionRegister中引入@Import注解

3、普通@Import的处理过程

1. 没有进行任何修饰的普通类 @Import注解处理过程中,最后处理成了@Configuration。
2. 但是没有创建BD.没有注册
image-20230512152725167

4、loadBeanDefinitions(configClasses)加载除ComponentScanner之外的BD

核心作用:把在parser方法中没有创建BD,且注册的几种情况,在这个操作中统一注册

image-20230512154341809 image-20230512155314664 image-20230512155209463

5、防止@ImportResource注入xml导致@Import嵌套

image-20230512160055220 image-20230512161805835 image-20230512162258958

6、总结InvokeBeanFatoryPostProcessor

核心工作就是:调用postProcessBeanDefinitionRegistry的 processConfigBeanDefinitions完成了我们开发过程中所涉及到的应用不同的形式和应用不同的注解,最后BeanDefinition注册完成的工作。

7、总结处理Import

解析三种形式的Import在处理的过程中并不会完成注册,而是在loadBeanDefinitions中进行注册。
这里需要注意一点,代码里面防止了@ImportResource注入xml导致@Import嵌套。

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

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

相关文章

数据结构 - 双向链表

文章目录 目录 文章目录 前言 一、什么是双向链表? 双向链表有什么优势? 二、双向链表的设计和实现 1.设计思想 尾增 : 在链表的末尾添加新的元素 头插 : 在链表头部插入节点 删除 : 根据val的值删除节点 查找 : 根据索引的值查找并返回节点 总结 前言 大家好,今天给…

Window安装虚拟机+给虚拟机安装Linux

一、虚拟机下载 这里使用Virtualbox虚拟机。可以直接从官网下载:Downloads – Oracle VM VirtualBox 点击进行下载,选择window版本的。直接双击,一直下一步 进行安装 PS:安装需要开启CPU虚拟化,一般电脑都已经开启了…

【大麦小米学量化】使用天勤TqSdk实现期货量化交易(入门)

文章目录 酱香拿铁的故事一、TqSdk 是什么?二、准备工作1. 安装tqsdk库(Python环境提前准备好)2. 注册快期账户3. 支持的期货公司(更新以官方公布为准) 三、初试牛刀1. 示例代码:2. 运行后提示如下&#xf…

VIT中的einops包详解

‘’‘einops有三个常用方法:rearrange,repeat,reduce’‘’ rearrange的操作相当于转置 rearrange(image,‘h w c -> w h c’) 高和宽转置 path ../data/cat_and_mouse.jpg image cv2.imread(path) h,w,c image.shape # shape第一个值是h,第二个是w image…

Vue框架--Vue列表渲染(1)

1.列表的基本遍历 Vue提供了v-for用于遍历数据内容,我们在这里重点说两种数据的遍历:数组的遍历和对象的遍历。遍历数组对象如下所示: 遍历对象案例:

vue3项目部署报错 Faled to esolve entry for pacdlage “hntlify/sthared“

版本 vue 3.2.47 vue-i18n 9.2.2 本地运行没有问题,jenkins上部署报错找不到"hntlify/sthared"包 排查问题: 查看vue-i18n官网,发现有引用到这个包 “hntlify/sthared” vue-i18n最新版本是9.3.0,未锁定版本&#xf…

Excel 将数字添加百分号

目的:将56.33变成56.33% 打一个“100”,然后ctrlc复制 全选要操作的数据,右键,选择“选择性张贴” 选择“除” 再选择“百分比” 可以调整位数 软件工程小施同学 20230907

【0907 C高级day2】Shell脚本

一、作业:写一个shell脚本,将以下内容放到脚本中 在家目录下创建目录文件,dir在dir下创建dir1和dir2把当前目录下的所有文件拷贝到dir1中,把当前目录下的所有脚本文件拷贝到dir2中把dir2打包并压缩为dir2.tar.xz再把dir2.tar.xz移…

Mac上的视频管理神器:MetaVideo for Mac让你的视频搜索和整理更轻松

视频时代已经来临,我们每天都会接触到各种各样的视频资源。但是,如何管理和编辑这些视频文件,让它们更加易于查找和使用呢?MetaVideo for Mac可以帮助你解决这个问题。 MetaVideo for Mac是一款专门为Mac用户设计的视频管理软件&…

2023京东医疗保健器械行业数据分析(京东数据分析平台)

随着人们对自身健康的重视程度不断加深,当前市场中各类对疾病具有诊断、预防、监护、治疗或者缓解的医疗保健仪器越来越受到消费者的关注。 根据鲸参谋电商数据分析平台的相关数据显示,今年7月份,京东平台医疗保健仪器的销量为950万&#xf…

Java“牵手”1688商品详情数据,1688商品详情API接口,1688API接口申请指南

1688平台商品详情接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取1688商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片等详细信息 。 获取商品详情接口API是一种用于获取电商平台上商品详情数据的接口,通过…

【广州华锐互动】VR景区云游:打造沉浸式网上虚拟旅游体验

VR景区云游体验是一种全新的旅游体验方式,通过虚拟现实技术,让游客在家中就能身临其境地游览各大景区。这种展示方式不仅节省了游客的时间和金钱,还能让他们在未出发前就对景区有更深入的了解。 通过虚拟现实技术,用户可以在景区内…

java String拼接json的方式

首先要晓得json显示的格式,就晓得下面为啥要这样拼接了 1.通过转义符号拼接 String content2 "{\"order\":{\"terminalNumber\":\"""""\"" ",\"listFlag\":"&q…

c高级day2作业

写一个1.sh脚本,将以下内容放到脚本中: 在家目录下创建目录文件,dir 在dir下创建dir1和dir2 把当前目录下的所有文件拷贝到dir1中, 把当前目录下的所有脚本文件拷贝到dir2中 把dir2打包并压缩为dir2.tar.xz 再把dir2.tar.xz…

自动化运维—ansible

一、 Ansible 介绍 Ansible 是一种 IT 自动化工具。它可以配置管理,部署软件以及协调更高级的 IT 任务, 例如持续部署,滚动更新。 Ansible 适用于管理企业 IT 基础设施,从 几十台到上百台的服务器环境。Ansible 也是一种简单的自…

既是管理又是执行者,如何清晰地进行工作总结呢?

摘要:作为管理者和执行者,清晰地进行工作总结对于提高效率和推动团队发展至关重要。本文将探讨一些技巧和方法,帮助管理者清晰地进行工作总结。 正文: 工作总结对于管理者来说是一项关键任务,它可以帮助回顾工作进展…

selenium自动化测试过程中接口的调用信息

在上一篇中我也给自己提出一个需求:如果记录在测试过程中接口的调用情况?提出这个需求,我觉得是有意义的。你在测试过程中肯定会遇到一些莫名其妙的问题,比如:web某个页面一直在刷进度条,导致你定位元素失败…

kubernetes 之 minikube折腾记

参考官网教程,链接: https://minikube.sigs.k8s.io/docs/start/ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube安装完启动minikube:…

超高真空度精密控制解决方案设计中百度“文心一言”的具体应用

摘要:本文采用国产版本ChatGPT百度“文心一言”作为一种辅助工具,针对超高真空度精密控制装置的开发进行了初期的技术路线设计,对话调研的重点是了解可调节式微流量进气阀门和可用于连接非线性输出信号型真空计的PID控制器。总体而言&#xf…