Spring Boot用于快速高效地创建可执行的Spring应用程序,进一步升华了约定优于配置,其中核心之一就是自动配置,通过@EnableAutoConfiguration实现,在类路径中查找META-INF/spring.factories(比如:spring-boot-autoconfigure中的这个文件),解析出每一条记录(每一条其实就是一个Configuration),然后import,实施装载配置。
| auto onfiguration | 备注 |
|---|---|
| WebMvcAutoConfiguration | Spring MVC自动配置,类似@EnableWebMvc |
| TestDatabaseAutoConfiguration | 根据驱动类自动识别并创建测试数据库(嵌入式)及数据源 |
| DataSourceAutoConfiguration | 数据源自动配置 |
| H2ConsoleAutoConfiguration | 是否自动开启H2 Console,spring.h2.console.enabled=true/false |
设置debug=true,可以看到那些自动配置启用了,那些没有启用。
1 | |
可以根据需要人工精确控制自动配置,初始化的性能会得到提升,但是增加了配置工作量。
spring-boot-autoconfigure里的spring.factories中的自动配置
1 | |