16. 自动配置
Spring Boot自动配置试图基于已经添加的jar依赖自动配置你的Spring 应用。例如,如果HSQLDB
在你的classpath上,你就不用手动的配置任何数据库连接bean,之后Spring Boot自动配置一个内存数据库。
你需要通过添加@EnableAutoConfiguration
或者@SpringBootApplication
注解到你的一个@Configuration
类来使用自动配置。
你应该只添加一个@SpringBootApplication
或者@EnableAutoConfiguration
注解。我们一般推荐你只添加一个或者另一个到你的主要的@Configuration
类。
16.1 逐步替换自动配置
自动配置是非侵入性的。在任何时候,你可以定义自己的配置来替换自动配置的指定部分。举个例子,如果你添加自己的DataSource
bean,默认的内嵌数据库支持会停用(back away)。
如果你需要找出什么自动配置是当前在被应用的,为什么,用—debug
开关启动你的应用。这么做为核心日志开启debug日志级别,并将conditions report输出
到控制台。
16.2 禁用指定的自动配置类
如果你发现特定的你不想要的自动配置类正在被应用,你可以使用@EnableAutoConfiguration
的exclude属性来禁用它们,如下例子所示:
- import org.springframework.boot.autoconfigure.*;
- import org.springframework.boot.autoconfigure.jdbc.*;
- import org.springframework.context.annotation.*;
- @Configuration
- @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
- public class MyConfiguration {
- }
如果该类没有在classpath上,你可以使用注解的excludeName
属性并指定完整地合格的(qualified)名字。最后,你也可以控制自动配置类的列表来移除,通过使用spring.autoconfigure.exclude
属性。
你既可以在注解级别也可以使用属性定义移除项(exclusion)