乐趣区

关于springboot:二自动装配

springboot 的主动拆卸大大加重了开发人员的工作量,约定大于配置的思维深刻 javaer 的心,那么 springboot 是如何实现主动拆卸的呢?
上面通过局部源码与图片开始解开其主动配置的神秘面纱。
首先,先从启动类注解开始

能够看到 @SpringBootApplication 中还有一个 @EnableAutoConfiguration 注解,从字面意思上就能够看出它与主动拆卸有不浅的关系,再看看它的全貌。

能够看到 @EnableAutoConfiguration 下面还有一个 @Import 注解,其作用是导入一个 class,再看看这个 AutoConfigurationImportSelector 类。
这个类有一个 getAutoConfigurationEntry 办法,作用是获取须要主动拆卸类名的 set 的条目。

getAutoConfigurationEntry 中还调用了一个办法 getCandidateConfigurations

getCandidateConfigurations 中调用了 SpringFactoriesLoader.loadFactoryNames(这个办法在上一篇 spi 与 SpringFactoriesLoader 中有具体的解析),从 META-INF/spring.factories 中读取 key 为 org.springframework.boot.autoconfigure.EnableAutoConfiguration 的所有的值返回对应的 List。
最初咱们来看看 spring-boot-autoconfigure 包下的 META-INF/spring.factories 文件。
![上传中 …]()

能够看到 springboot 为我的项目筹备了十分多的配置类,这样开发人员就只需按需更改配置就行了,不须要再去手动实现配置。

最初附上简略的流程图

退出移动版