Springboot的Auto configuration机制 - ambition0802/spring-practice GitHub Wiki
关于Auto-configuration的机制介绍,以及如何创建自己的Auto-configuration包,详见Springboot的features文档。
Springboot的这个机制,极大的方便了我们把其他组件集成到Springboot上。
通过查看源码,以及官方的文档,Auto-configuration的实现,也是基于Spring的SPI机制(在JDK的SPI基础上)。Springboot从ClassLoader获取所有的META-INF/spring.factories。用户自定义扩展的Auto-configuration配置在spring.factories中的org.springframework.boot.autoconfigure.EnableAutoConfiguration上(这个配置项是个list,可以配置多个),Spring扫描到配置的EnableAutoConfiguration之后,再一个个加载他们,从而实现项目依赖jar包中的Bean能够自动配置注入到项目的Spring容器中。