springboot自动装配(源码分析)

ops/2024/9/23 10:38:19/

利用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.ppmy.cn/ops/89671.html

相关文章

【Unity】3D功能开发入门系列(四)

Unity3D功能开发入门系列(四) 一、组件的访问(一)组件的调用(二)组件的参数(三)引用别的组件(四)引用脚本组件(五)消息调用 二、物体的…

Chapter 26 Python魔术方法

欢迎大家订阅【Python从入门到精通】专栏,一起探索Python的无限可能! 文章目录 前言一、什么是魔术方法?二、常见的魔术方法① __init__构造方法② __str__字符串方法③ __lt__比较方法④ __le__比较方法⑤ __eq__比较方法 前言 本章将详细讲…

软件测试面试101问(附答案)

前言 前阵子一位读者告诉我,某位大厂HR给他发了我之前做的面试题答案合集。 这个消息让我开心了一整天,因为这说明我之前做的面试题系列真的能帮助到部分测试同学,也算是侧面得到了一种认可吧。 今天写的这份面试题我之前就整理分享过&…

近期关于云服务器window server 2012屏蔽游戏加速器/IP加速器模拟IP连接限制策略

winr 打开运行 输入 gpedit.msc 找到本地组策略编辑器的对应设置 设置启用即可。

顺序表 - Java

目录 一、IList 二、MyArrayList 三、PoslslegalException 四、Test 一、IList package myArrayList;/*** Created with IntelliJ IDEA.* Description:* User: tangyuxiu* Date: 2024-08-05* Time: 8:45*/ public interface IList<T> {// 判断顺序表是否已满boolean…

LeetCode.572.另一棵树的子树

题目描述&#xff1a; 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。…

确保Apache Flink流处理的数据一致性和可靠性

Apache Flink是一个用于大规模数据流处理的开源框架&#xff0c;它提供了多种机制来保证在分布式环境中数据的一致性和可靠性。在实时流处理中&#xff0c;数据的一致性和可靠性是至关重要的&#xff0c;因为它们直接影响到数据处理结果的准确性和系统的稳定性。本文将详细介绍…

【vulnhub】Zico2靶机

信息收集 靶机IP发现 进行端口扫描&#xff0c;发现开放了22&#xff08;ssh&#xff09;&#xff0c;80&#xff08;http&#xff09;和111&#xff08;rpcbind&#xff09;端口。 进行目录扫描 dirsearch -u http://192.168.93.152 网址IP访问 后面拼接/dbadmin/目录 用弱口…