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

一、概述

        我们知道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排除无效的自动配置类

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【开源】基于Vue.js的停车场收费系统

文末获取源码,项目编号: S 076 。 \color{red}{文末获取源码,项目编号:S076。} 文末获取源码,项目编号:S076。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 停车位模块2.2 车辆模块2.3 停车收费…

油气罐防雷和化工防雷综合解决方案

油气罐防雷和化工防雷是化工企业安全生产的重要内容,涉及到化工装置、储罐、管道、电气设施等多个方面。地凯科技将介绍油气罐防雷和化工防雷的方案和应用方案,以期为化工企业提供一些参考。 油气罐防雷 油气罐是储存可燃易爆物质的设施,一…

jmeter资料

1.jmeter介绍 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象…

侯捷C++八部曲(一,面向对象)

头文件和类的声明 inline inline修饰函数,是给编译器的一个建议,到底是否为inline由编译器来决定,inline修饰的函数在使用时是做简单的替换,这样就避免了一些函数栈空间的使用,从能提升效率。从另一种角度看&#xff…

将.tiff格式图片转换为可视化的png,jpg,bmp等格式(附代码)

目前常用的.tiff格式图片转png格式图片,搜了一下,多数都是第三方平台直接转换,需要米,其实大可不必,自己撸代码就可以直接转换。 TIFF(Tagged Image File Format)是一种灵活的位图格式&#xf…

Android 应用程序无响应定位ANR原因

废话不多说,直接上方案: 第一步: 执行adb命令 adb bugreport /Users/mac/Desktop/anr 解压后FS/data/anr下就会有相关anr文件 /Users/mac/Desktop/anr 是电脑存储文件的路径,可以随便定义,这个没有影响。我的电脑是…

做一个类似万师傅家政小程序需要有哪些功能?

现如今人们生活节奏不断加快,自然很少有时间去处理生活中的琐事,恰好家政维修保洁小程序开发则能给线下用户提供方便。 家政保洁小程序应该具备哪些功能? 1、提供家政行业资讯,方便用户在选择家政保洁前了解行业动态。 2、分类搜…

【Linux】more命令使用

more 是linux的一个命令,类似cat命令,会以一页一页的显示,方便使用者逐页阅读。 More是一个过滤器,用于一次一屏地对文本进行分页。这个版本特别原始。用户应该意识到,less(1)提供了更多的模拟…

算法分析复习重点

目录 复习重点 子集数 01背包 排列树 (可以求出所有的解,但是是残缺的) n-皇后 n的全排列 回溯法 就是对隐式图的深度优先搜索 算法 (勤劳或许也是一种诅咒) 八皇后回溯的过程 解空间 结点的扩展规则 搜…

大模型技术的发展与实践

一、大模型的概念 大型语言模型,也称大语言模型、大模型(Large Language Model,LLM;Large Language Models,LLMs) 。 大语言模型是一种深度学习模型,特别是属于自然语言处理(NLP)的…

【皇帝的新装】像管理产品一样,来管理自己

在前进的路上需要不时的回头看,看自己来时的脚步,是杂乱无章,还是方向一致。善于从经验中总结可以让我们少走许多弯路,降低我们的消耗。 偶然间,回头看看,入行产品经理已经三年有余。沉迷在各种具体事务中&…

类与对象的概念:创建及调用方法

掌握类和创建对象的关系 定义类 定义对象 定义和调用方法 编程思想:面向过程编程,面向对象编程 系统提供数据类型【String,char,double】,我们也可以自己定义类型:根据自定义类型所衍生出来的变量就是…

【Cadence Allegro17.4】

Cadence Allegro17.4 1. Cadence Allegro17.42. pcb工程文件的介绍3.4.5.6. 1. Cadence Allegro17.4 常用的工具 2. pcb工程文件的介绍 新建工程 : 飞行器 要创建的文件夹 GERBER光会文件,发出去制版。 DXF结构文件, pcb文件 lib 封装库 sc…

2023博思高科技智慧车行、人行专项研讨会成功召开

来源:智安物联网 11月30日,深圳市博思高科技有限公司(以下简称“博思高科技”)在其总部成功举办了智慧车行、人行专项研讨会议。本次会议邀请了来自国家发改委综合运输研究所的程世东主任,中国安全防范产品行业协会原…

BFS求树的宽度——结合数组建树思想算距离

二叉树最大宽度 https://leetcode.cn/problems/maximum-width-of-binary-tree/description/ 1、考虑树的宽度一定是在一层上的所以进行BFS,树的BFS不建议直接使用队列,每次add/offer然后poll/remove,这样子层级关系不好显示。我们可以定义…

基于现代学徒制的大数据技术与应用人才培养模式探讨

学生学徒制的实施旨在解决当前新技术企业招聘技能人才难和青年就业难的结构性矛盾,通过生态链链主企业携手院校共同解决毕业年度学生就业问题,按照学生个人意愿,建立以就业导向的学生学徒制关系,签订学徒培养协议确定学生就业岗位…

SAP系统邮件功能配置 SCOT <转载>

原文链接:https://zhuanlan.zhihu.com/p/71594578 相信SAP顾问或多或少都会接到用户要求SAP系统能够定时发送邮件的功能,定时将用户需要的信息已邮件的方式发送给固定的人员。 下面就来讲一下SAP发送邮件应该如何配置: 1、RZ10做配置&#…

【蓝桥杯】 蓝桥杯Python必备基础知识

输入输出 #读取int类型数据 x int(input()) #读取float类型数据 x float(input()) #读取string类型数据 x input() #读取多个数据 x, y map(int, input().split()) #其他基本类型同理 #读取一行的数据存放到数组种 int_list [int(i) for i in input().split()] #其他基…

基于SSM框架的网上书店系统

基于SSM框架的网上书店系统 文章目录 基于SSM框架的网上书店系统 一.引言二.系统设计三.技术架构四.功能实现五.界面展示六.源码获取 一.引言 随着互联网的普及和电子商务的快速发展,网上书店系统成为了现代人购买图书的主要方式之一。网上书店系统不仅提供了便捷的…

【性能测试】混合业务场景按比例设计

已知从生产环境中统计出的接口比例如下所示: 接口接口比例接口140%接口220%接口330%接口410% 场景一:以上接口无上下依赖关系,设计出容量场景 接口1比例如下: 接口2比例如下: 接口3比例如下: 接口4比例…