浅谈spring-boot自动配置原理

最近看在spring-boot源码时,对spring-boot的自动配置原理有了个大概的了解,这里说说我个人的

理解。

spring-boot自动配置:自动将第三方框架集成到spring-boot项目中

首先从源码看起,Application配置类上的@SpringBootApplication注解进去可看到

去除元注解还剩下三个自定义注解;

分别讲下它们的大致作用

@SpringBootConfiguration 主要定义了该类为配置类

@EnableAutoConfiguration 用于开启自动配置

@ComponentScan 用于扫包,配置只能扫描与本类的在同一层级下的包,过滤器也可配置不扫描的包。

开启自动配置功能后,spring-boot会自动去依赖的jar包中递归查找是否有META-INF,且该文件夹下是否有spring.factories配置文件如下

 

 该文件中主要用于配置自动装配的配置类扫描

用于自动装配的配置类上应至少添加@Configuration确定其实配置类,有需要单独配置的数据,例

如数据源的url等,则需要添加@EnableConfigurationProperties({xx.class}),配置类中需要注入该

properties类,properties类主要用于存储外化配置数据,

@EnableConfigurationProperties({xx.class})注释通过反射获取到properties类中配置的值。

properties类上需要添加@ConfigurationProperties(prefix = "xxxx"),该注释用于设置在spirng-boot

中的别名,属性为外化配置的key,需要提供getter,setter方法。

在spring-boot中通过配置appliaction.properties或者application.yml,spring-boot则可以读取到

外化配置。

 整理下整体的自动配置流程:

spring-boot配置类加上@EnableAutoConfiguration后,会开启自动配置。然后spring-boot会去扫

描当前项目所依赖的架包下是否有META-INF文件夹,META-INF文件夹下是否有spring.factories配

置文件,然后读取spring.factories里配置的自动配置类对其进行自动装配,如果该配置类有

@EnableConfigurationProperties({xx.class})注解,则会根据外化配置类properties去

appliaction.properties或者application.yml中匹配对应的key和value,从而完成自动装配。

 小生才疏学浅,有表达或者理解不到位的地方,还请大佬们指出,万分感谢。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值