面试之springboot自动配置原理

自动配置首先从注解说起。@SpringBootApplication由三个注解组成:@CompanentScan, @EnableAutoConfiguration,@SpringBootConfiguration(其实就是@Configuration注解) ,

其中@EnableAutoConfiguration 通过@Import注解 将AutoConfigurationImportSelector .class这个类引进来。该类会去加载所有jar包的META-INFO下面的spring-factories配置文件。这里面包括spring-boot-auto-configur包目录下面的,这里面有大约130个自动装配类。也会去扫描其他包下面的spring-factories配置文件,也就是只要有META-INFO/spring-factories配置文件,springboot都会尝试把这个类加载到spring容器里面。
这里其实用到了spring里面的spi机制,如果对spi机制不懂的可以去百度学习一下。简单来说,就是你定义了一个接口,但是不提供实现,接口实现由其他系统应用实现。你只需要提供一种可以找到其他系统提供的接口实现类的能力或者说机制

spring-factories配置文件,这个文件是个key-value的形式,key是EnableAutoConfiguration的全路径名,value是各个需要自动配置的类。然后springboot默认在这个配置文件中定义了大约100多个常用的配置类,然后再根据Condition按需加载我们需要的配置类,比如在配置文件中增加了对应的配置,对应的配置类就会生效。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值