什么是自动配置
Spring Boot的自动配置试图通过自动的方式基于我们添加的jar依赖来配置Spring应用.
比如 HSQLDB在classpath里面,并且我们没有手动配置任何数据库连接的bean,Spring boot会自动的配置一个内存级别数据库.
我们可以选择添加 @EnableAutoConfiguration 或者 @SpringBootApplication 在配置类上
替换自动配置
自动配置是无侵入的.在任何点,都可以通过定义自己的配置来替代自动配置的特定部分. 比如,你可以添加自己的 DataSource实例,则默认的内嵌数据库就会退让.
如果要找到哪些自动配置当前被使用和为什么使用, 则启动应用的时候带上 --debug. 这样做后启动debug日志在控制台打印配置的报告.
该日志由:org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener打出来的
- Positive matches 匹配的
- Negative matches 没匹配
- Exclusions 排除的
- Unconditional classes 无条件配置
禁用指定的自动配置类
通过@SpringBootApplication 的exclude属性来禁用对应的依赖
1 2 3 4 5 | @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) public class MyApplication { } |
如果类不在classpath上,你也可以使用excludeName属性来指定全名称来替代.如果我们使用@EnableAutoConfiguration 这两个属性同样可以使用.