springboot自动装配(源码分析)

news2024/9/29 1:27:21

利用spi机制发现配置类并注册到spring容器中
以下示例使用springboot:3.2.1版本

相关注解

@SpringBootApplication
在这里插入图片描述
@EnableAutoConfiguration
在这里插入图片描述
在这里插入图片描述

AutoConfigurationImportSelector

使用@Import导入AutoConfigurationImportSelector,随着springboot启动,会创建AutoConfigurationImportSelector的实例,通过该实例寻找所有自动配置类

  • 在spring生命周期的beanfactory后置处理器处理阶段,后置处理器BeanDefinitionRegistryPostProcessor的实现类ConfigurationClassPostProcessor,使用AutoConfigurationImportSelector查找所有自动配置类

    AbstractApplicationContext#refresh
    AbstractApplicationContext#invokeBeanFactoryPostProcessors
    

    在这里插入图片描述
    org.springframework.boot.autoconfigure.AutoConfigurationImportSelector#getAutoConfigurationEntry
    在这里插入图片描述
    getCandidateConfigurations方法会读取META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件中的内容作为自动配置类的全路径类名
    在这里插入图片描述
    之后会将读取到的所有自动配置类的全路径名通过DefaultListableBeanFactory#registerBeanDefinition方法注册到spring容器中,这就意味着配置类开始生效

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

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

相关文章

工业控制常用的EtherNet/IP、OPC UA协议的标签数据转发到另外的PLC寄存器地址

在工业自动化领域,越来越多的碰到标签方式通讯的设备,常用有CIP(基于EtherNet/IP) 的协议、OPCUA协议等,CIP协议主要是罗克韦尔/AB的PLC、欧姆龙NX/NJ系列的PLC等,OPCUA协议常见于工业机器人、智能焊接设备等。在不具备标签协议接…

AI绘画变现也有新思路,国风带你日进斗金!

在中国的文化传承中,古典的风韵总是能引发无尽的遐想和美感。 在现代化的今天,越来越多的人开始重新审视和欣赏那些古老的中国风,发现其中蕴含的深厚文化底蕴与无与伦比的美感。 特别是在影视、音乐、舞蹈等艺术形式中,国风元素…

【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载 本章将分享C增加的几种常见特性,主要内容为引用与内联函数 | auto关键字与for循环 | 指针空值,这些知识看似很多,实际也不少。本章篇幅长&#…

双笼转子三相感应电动机瞬态分析(7):定子绕组短路故障分析

1. 引言 2. 定子绕组短路时端电压约束条件 3. 双笼转子三相感应电动机数学模型 4. 仿真分析 5. 结论 6. 参考文献 1. 引言 定子绕组短路故障是三相感应电动机的典型故障情形之一,但其发生几率比缺相故障要低。根据电力系统的研究报告,单相短路在所有…

在仪器计量校准中,无尘车间洁净室检测有哪些方法和流程?

仪器计量校准行业内,无尘车间洁净室检测可以说是较为热门的业务,因为其预算高,且检测流程不是太繁琐,很多仪器计量校准机构也是设立相关实验室,专门处理相关仪器的检测。不过虽然许多机构想要涉足该领域,但…

ArcGIS自带的python安装第三方库

ArcGIS自带的python安装第三方库 文章目录 ArcGIS自带的python安装第三方库pip库安装安装setuptools库安装pip库 第三方库安装 在做项目时,用到了ArcGIS(非pro)中python中的arcpy库,但是又依赖其他外部库,而 Python2并不像Python3那样自带pip…

gitlab项目添加新成员

gitlab项目添加新成员 1、进入项目,找到settings----->点击Members 2、手动输入要添加成员的账号或者搜索,最后点击Add to project就可以了 choose a role permission 是为要添加的成员选择角色权限 补充: ‌Maintainer:拥…

RabbitMQ未授权访问漏洞

RabbitMQ未授权访问漏洞 RabbitMQ是目前非常热门的一款消息中间件,基于AMQP协议的,可以在发布者和使用者之间交换异步消息。消息可以是人类可读的JSON,简单字符串或可以转换为JSON字符串的值列表 1、使用以下Fofa语法对RabbitMQ产品进行搜索 2、在打开…

【机器学习】回归类算法-一元线性回归(入门)

一、概念 一元线性回归,指的是只研究一个自变量与一个因变量之间的关系。简单来说就是看如何设计出一条理想的直线(ykxb)。 二、如何确定一条理想的直线? (1)最小二乘法 通过数学模型,拟合一条…

数字化转型的实践指南:揭开TOGAF®架构开发方法ADM的核心价值

实践应用视角:引领数字化转型的必备工具 《TOGAF架构开发方法》 是为企业数字化转型提供系统化指导的权威指南。无论是企业架构师还是信息技术经理,都能从这本《TOGAF架构开发方法》中找到行之有效的方法和策略,帮助他们在数字化时代实现业务…

open_ai-maddpg_Multiagent-particle-envs环境搭建过程

一.利用Anaconda安装python3.6环境 1.安装 下载源: 利用Anaconda安装python3.6环境_anaconda python3.6-CSDN博客 安装过程: windows下载安装anaconda3.6图文教程 - 简书 (jianshu.com) Python3.6版本anacondaPyCharm环境配置,全网最详细…

Vulnhub入门篇-Kioptrix2014

1.环境配置 下载地址:https://download.vulnhub.com/kioptrix/kiop2014.tar.bz2 攻击机kali:192.168.26.128(Nat模式) 靶机配置:Nat模式 这里注意,根据官网地址说明,需要我们先将网络适配器…

【机器学习】人工神经网络优化方法及正则化技术

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 人工神经网络优化方法及正则化技术1. 引言2. 神经网络优化的基础2.1 损失函数2.…

vlunstack-2(复现红日安全-ATT CK实战)

环境搭建 配置信息 DC IP:10.10.10.10 OS:Windows 2012(64) 应用:AD域 WEB IP1:10.10.10.80 IP2:192.168.47.131 OS:Windows 2008(64) 应用:Weblogic 10.3.6MSSQL 2008 PC IP1:10.10…

Scrapy入门篇

免责声明 本文的爬虫知识仅用于合法和合理的数据收集,使用者需遵守相关法律法规及目标网站的爬取规则,尊重数据隐私,合理设置访问频率,不得用于非法目的或侵犯他人权益。因使用网络爬虫产生的任何法律纠纷或损失,由使用…

论文解读:LSM Tree 的魔力,提升写入吞吐量的高效数据存储结构

LSM Tree是一种用于高写入吞吐量的数据库存储引擎,广泛应用于现代分布式数据库系统。其核心思想是将写入操作缓存在内存中,并定期批量写入磁盘,减少磁盘 I/O 操作,提高写入性能。因其高效的写入性能和适应大规模数据的能力&#x…

医院客户满意度调查如何开展

深圳满意度咨询有限公司(SSC)(患者第三方满意度测评)服务于国内多家医院,辅助医院提高患者满意度、改善医德医风、提高服务水平,调查项目覆盖了国内150余个城市,通过电话调查、网络问卷、现场访…

图片搜索网站,有大量高清图片,避免版权纠纷

一、简介 1、一个图片搜索网站,所有图片均遵循CC0协议,用户可以免费用于商业用途而无需标注来源。网站上有大量高清图片,基本可以满足用户的各种需求,同时避免了法律风险。提供强大的筛选功能,用户可以按图片方向、尺寸…

python学习之路 - python的函数

目录 一、python函数1、函数介绍2、函数的定义3、函数的参数4、函数的返回值5、函数说明文档6、函数的嵌套调用7、变量的作用域8、综合案例9、函数与方法的区别 二、python函数进阶1、函数多返回值2、函数多种传参方式a、位置参数b、关键字参数c、缺省参数d、不定长参数 3、匿名…

Visual Studio 调试时加载符号慢

什么是调试符号 编译程序时生成的一组特殊字符,并包含有关变量和函数在生成的二进制文件中的位置以及其他服务信息的信息。 该数据集可用于逐步调试程序或检查第三方代码。 调试符号可以添加到可执行文件或库中,但是大多数现代编译器将它们存储为单独的…