【HBZ分享】spring启动时自动装配的位置

news2025/1/21 3:03:14

自动装配流程

  1. springboot启动时,自动装配逻辑在@SpringBootApplication这个符合注解中的@EnableAutoConfiguration
  2. 新版springboot3会扫描META-INF的spring文件夹下的org.springframework.boot,autoconfigure,AutoConfiguration.imports文件,会把这里所有写的自动装配类路径全部拉取到内存
  3. 初步排除一下不需要自动装配的类,即看下这些类上面是否存在@EnableAutoConfiguration注解,不存在该注解直接被排除,remove出map集合中
  4. 进一步判断留下的这些自动装配类是否需要加载到IOC, 此时会根据META-INF的spring-autoconfigure-metadata.properties里面的条件进行filter过滤,只会加载符合条件的自动装配类
  5. 实际上经过filter条件过滤后,大多数类都不会被加载
  6. 如果是springboot2.7之前的版本,自动装配类扫描路径是在META-INF下的spring.factories文件。

自动装配文件配置的所在位置

  1. 旧版的自动装配类配置的路径:
    在META-INF下的spring.factories文件中,以key-value的形式

  2. 新版本自动装配类的路径:
    在META-INF的spring文件夹下的org.springframework.boot,autoconfigure,AutoConfiguration.imports文件中,这个文件名和路径必须这么写,是固定的。内容是以【包名+类名】的格式,每个自动装配独立占1行,无需加什么分隔符,直接换行写第二个自动装配类即可

  3. 校验过滤哪些自动装配类的条件:
    在META-INF的spring-autoconfigure-metadata.properties中,这里面定义了所有需要自动装配的条件,只有符合的才会自动装配

新版自动装配类的写法org.springframework.boot,autoconfigure,AutoConfiguration.imports截图:
在这里插入图片描述

旧版自动装配写法spring.factories截图:
在这里插入图片描述

spring-autoconfigure-metadata.properties自动装配条件文件截图:

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

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

相关文章

FSMC--灵活的静态存储控制器

(1)在STM32F1系列(及F407)的芯片上封装了FSMC外设,支持拓展SARM作为RAM。 (2)SRAM和SDRAM的区别: 存储结构:SRAM使用锁存器、SDRAM使用电容通讯方式:SRAM多…

Leaf分布式ID

文章目录 系统对Id号的要求UUIDsnowflakeLeafLeaf-snowflakeLeaf-segmentMySQL自增主键segment双buffer 系统对Id号的要求 1、业务 1)全局唯一性:不能出现重复的ID号,既然是唯一标识,这是最基本的要求 2)趋势递增&a…

使用LLM(Large Language Model)进行主题建模

随着互联网技术的快速发展,自然语言处理(NLP)领域取得了显著的进步。其中,大型语言模型(LLM)在文本生成任务中表现尤为抢眼。本文旨在探讨LLM在主题建模方面的优势,以及如何将其应用于文本生成任…

深度图进行运算检测物体表面粗糙度

文章目录 应用场景算法原理核心代码应用场景 不同程度凹凸的零件表面粗糙度对零件的磨损产生影响,很大程度上关系到产品性能和使用寿命。不同于单独使用的产品,零件需要在装配中与其他零件相连,密封性和磨损量是厂商需要考虑的一大加工要素;其次,产品外观和触感也会影响到…

数据结构链表2(常考习题1)(C语言)

移除链表元素: . - 力扣(LeetCode) 题目: 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 解题思路: 情况1: 情…

【vluhub】skywalking

SkyWalking是一个开源监控平台,用于从服务和云原生基础设施收集、分析、聚合和可视化数据 低版本存在sql注入漏洞 访问地址 http://192.168.203.12:8080/graphql burpsuite抓数据包 替换 {"query":"query queryLogs($condition: LogQueryConditi…

安装STM32开发工具:STM32CubeMX、STM32CubeIDE、STM32CubeCLT

ST官网地址:https://www.st.com/content/st_com/en.html ST官网因为链接原因下载会比较慢,推荐使用STMCU中文官网,下载很通畅:STMCU中文官网 安装Java 在安装STM32开发软件STM32CubeMX和STM32CubeIDE、STM32CubeCTL之前&#x…

浏览器事件循环详解

1. 浏览器的进程模型 1.1. 何为进程? 程序运行需要有它自己的专属内存空间,可以把这块内存空间简单的理解为进程。 每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。 1.2. 何为线程&#xff1f…

【Linux】进程间通信(3):共享内存

目录 一、共享内存概述 二、共享内存相关函数 1、shmget函数 2、ftok函数 3、shmctl函数 4、 shmat函数 5、 shdt函数 三、使用共享内存相关函数管理共享内存的一般过程 1. 生成唯一的键值 2. 创建或获取共享内存段 3. 连接到共享内存段 4. 操作共享内存 5. 断开…

2024 NVIDIA开发者社区夏令营环境配置指南(Win Mac)

2024 NVIDIA开发者社区夏令营环境配置指南(Win & Mac) 1 创建Python环境 首先需要安装Miniconda: 大家可以根据自己的网络情况从下面的地址下载: miniconda官网地址:https://docs.conda.io/en/latest/miniconda.html 清华大学镜像地…

对提高数据和指令缓存命中率方法的验证

对于如何写出让CPU跑得更快的代码这一问题,我看到了两种方法,分别是:1、提高数据缓存命中率;2、提高指令缓存命中率。 本文对这两种方法进行了简单的验证,并提供了示例代码。 本文基于2.3 如何写出让 CPU 跑得更快的代…

大规模深度学习推理引擎是什么?

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 首先,我们来理解 “深度学习”:它是人工智能的一个重要分支,模仿人脑的神经网络结构,运用多层神经网络来学习和解析数据。这些神经网络能够从庞大的数据集…

二、版本更新与插件安装

版本更新 点击版本管理 点击刷新列表后点击一键更新,即可完成更新(注意完成更新必须要关闭正在运行的服务) 更新拓展(更新插件) 点击拓展-刷新列表-一键更新 即可 注意:操作完成以后必须重新启动方可生效…

(六)activiti-modeler 设计器属性编辑弹窗bug修复

BUG重现 在使用流程设计器时,经常碰到弹窗不小心关闭,比如不小心点击了灰色背景上,此时BUG就出现了。弹窗被关闭了,分配用户属性被置空了,以前有数据也被清空了,还无法再次点击弹窗编辑。 不仅仅是分配用…

deque和优先级队列

咱学完栈和队列之后,又了解到了vector和list,更深入的了解到了它们各自的优势,那么有没有可能结合它们的优点摒弃弱点呢,其实是有人这么试过的,不过咱还在学vector和list就证明他可能没成功,不过并不影响我…

python中类class的魔法方法

开始介绍之前,我们先看下之前文章我们介绍过的内置类merryview的一些方法,如下图所示: 有很多双下划线开始和结束的method,这么多method是做啥子用的呢? 其实这些方法就是我们常说的魔法方法,也是python中的…

【代码随想录】二分查找

文章为代码随想录的学习笔记,链接: 代码随想录 只要看到面试题中给出的数组是有序数组,都可以想一想是否可以使用二分法。 基本概念 二分查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。‘ 查找过程&…

2024年华数杯数学建模竞赛——赛题浅析

本次华数杯与国赛同频【第一天下午六点发题,第四天下午八点收卷】,一共74小时。难度约为国赛的0.8,题量约为国赛的0.8-0.9.非常适合作为国赛前的练手赛。下面为大家带来本次华数杯的选题建议,希望对大家有所帮助。 一图流 选题人…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 卢小姐的字符串解压缩(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题…

36-38 关系数据库入门

关系数据库入门 关系数据库概述 数据持久化 - 将数据保存到能够长久保存数据的存储介质中,在掉电的情况下数据也不会丢失。 数据库发展史 - 网状数据库、层次数据库、关系数据库、NoSQL数据库。 1970年,IBM的研究员E.F.Codd在Communication of the ACM…