springBoot自动配置原理

本文探讨了SpringBoot自动配置的原理,从@EnableAutoConfiguration注解开始,详细解释了如何通过EnableAutoConfigurationImportSelector选择器读取META-INF/spring.factories文件,并将配置转化为容器中的组件。自动配置涉及从autoconfiguration Jar包下的spring.factories加载所有EnableConfiguration的值,这些配置类在启动时加入容器,各自负责特定部分的自动配置功能。以HttpEncodingAutoConfiguration为例,展示了自动配置的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springBoot自动配置原理

1、我们应用切入口的@EnableAutoConfiguration注解:
在这里插入图片描述

springBoot启动的时候加载了主配置类,开启了自动配置功能@EnableAutoConfiguration
@EnableAutoConfiguration注解作用:
EnableAutoConfigurationImportSelector.class主要是通过该选择器对容器进行添加组件;
在这里插入图片描述
在这里点击进入该方法我们看到:
在这里插入图片描述
获取的什么资源呢查看:
在这里插入图片描述
获取 所有选择的jar下 META-INF/spring.factories中的配置:
在这里插入图片描述
就是将这里面的配置内容读取出来怼成一个properties对象
然后又把properties对象中的值获取出来交给我们的springfactory 去在容器中创建组件,组件的class是在选择器中的getSpringFactoriesLoaderFactoryClass返回:
在这里插入图片描述
在这里插入图片描述
所以 我们的 整个过程其实就是借助选择器去从EnableAutoConfiguration中获取到值然后把他们添加在容器中的过程;
去autoconfiguration Jar包下找寻meta-inf下的spring.factories :
在这里插入图片描述
自动装配就是将类路径下meta-inf 下sppring.factories里面配置的所有的EnableConfiguration的值加入到容器中,所以容器中最终会添加很多的类组件 ,这就是springBoot自动配置开始。每一个 xxxAutoConfiguration类都会在springBoot启动的时候加载到容器中,这些类作用就是用他们做对应类的自动配置。每一个自动配置类完成自己那部分的自动配置功能。
应用举例 :
以HttpEncodingAutoConfiguration类举例来研究整个过程;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值