要想了解springboot自动配置,首先要了解下SpringFactoriesLoader
@SpringBootApplication 启动类要加的一个注解,其中包含
@SpringBootConfiguration 不是主要的,就类似一个configuration @EnableAutoConfiguration 自动配置就在该注解里实现
包含两个注解
@AutoConfigurationPackage 扫描启动类包下的,注册bean (@Bean @Compent注解的类) @Import({AutoConfigurationImportSelector.class})
import注解,不熟悉的可以了解下,有三种实现。其中一种方式就是对实现ImportSelector的类,执行
selectImports(),对返回的类进行注册
关注这个AutoConfigurationImportSelector标红方法,就是获取所有META-INF下spring.factories中
org.springframework.boot.autoconfigure.EnableAutoConfiguration作为key对应的使用@Configuration注解的类。@Import会注册
这里就是用到了SpringFactoriesLoader的loadFactoryNames
可以看下spring-boot-autoconfigure.jar下的spring.factories其中配置了很多自动加载的类,aop,amqp等等