系列十三、SpringBoot的自动配置原理

news/2025/1/3 2:41:09/

一、概述

        我们知道Java发展到现在功能十分的强大,生态异常的丰富,这里面离开不了Spring及其家族产品的支持,而作为Spring生态的明星产品Spring Boot可以说像王者一般的存在,那么的耀眼,那么的光彩夺目!那么它凭什么这么强大呢? 这就不得不说到Spring Boot的自动配置原理了,可以这么说,Spring Boot之所以这么强大,就是因为有自动配置的加持它才这么强大的,那么它的自动配置原理是怎样的呢?请看下图分析:

二、原理

        1、SpringBoot有一个主启动类,主启动类上标注了@SpringBootApplication注解,而@SpringBootApplication又是一个复合注解,引入了@EnableAutoConfiguration注解(负责开启自动配置功能);

        2、@EnableAutoConfiguration引入了@Import注解

        3、Spring容器启动会加载IOC容器,加载IOC容器时会解析@Import注解;

        4、@Import注解导入了一个AutoConfigurationImportSelector(实现了延迟导入选择器,会使SpringBoot的自动配置类的加载顺序在最后,这样方便我们覆盖和扩展);

        5、读取所有/META-INF/spring.factories中的文件信息;

6、过滤出所有xxxAutoConfiguration类型的类

7、最后再通过@ConditionalOnXXX排除无效的自动配置类


http://www.ppmy.cn/news/1252343.html

相关文章

C# 泛型编译特性对性能的影响

C#作为一种强类型语言,具有丰富的泛型支持,允许开发者编写可以应对不同数据类型的通用代码。然而,在泛型编译时,针对结构和类作为泛型参数时,会对性能产生不同的影响。 泛型编译行为 在C#中,泛型编译行为取…

【brpc学习实践十二】bthread

概览 bthread(代码)是baidu-rpc使用的M:N线程库,是其稳定和高效的关键组件。能更好地利用多核cpu,能在pthread中运行,需要注意的是,bthread的work stealing机制会da让任务pthread发生切换,从而让thread_local变量不可信,通常在bthread_usleep或这join的时候就有可能发生…

2023/11/30JAVAweb学习

数组json形式 想切换实现类,只需要只在你需要的类上添加 Component 如果在同一层,可以更改扫描范围,但是不推荐这种方法 注入时存在多个同类型bean解决方式

波场TRON将致力于推动各方合作打击恐怖主义融资

随着加密行业的蓬勃发展,新的挑战也接踵而至。近期,有外媒报道称,哈马斯等美国认定的国际恐怖组织涉通过波场TRON进行融资活动。在这场风波中,区块链项目波场TRON似乎成为了质疑的焦点。然而,当我们深入了解事实真相时,或许会发现事情并非传言中那般夸张。 波场TRON的背景与定…

Zookeeper分布式锁实现Curator十一问

前面我们通过Redis分布式锁实现Redisson 15问文章剖析了Redisson的源码,理清了Redisson是如何实现的分布式锁和一些其它的特性。这篇文章就来接着剖析Zookeeper分布式锁的实现框架Curator的源码,看看Curator是如何实现Zookeeper分布式锁的,以…

【华为OD题库-050】树状结构查询-java

题目 通常使用多行的节点、父节点表示—棵树,比如: 西安 陕西 陕西 中国 江西 中国 中国 亚洲 泰国 亚洲 输入一个节点之后,请打印出来树中他的所有下层节点 输入描述 第一行输入行数,下面是多行数据,每行以空格区分节点和父节点 …

windows远程桌面登录,提示:“出现身份验证错误,要求的函数不受支持”

问题: windows登录远程桌面,提示:“出现身份验证错误,要求的函数不受支持”,如下图: 问题原因: windows系统更新,微软系统补丁的更新将 CredSSP 身份验证协议的默认设置进行了调…

网络安全(黑客)——自学手册

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…