16、自动配置
Spring Boot 自动配置尝试根据您添加的 jar 依赖自动配置 Spring 应用。例如,如果 classpath 下存在 HSQLDB,并且您没有手动配置任何数据库连接 bean,那么 Spring Boot 将自动配置一个内存数据库。
您需要通过将 @EnableAutoConfiguration
或者 @SpringBootApplication
注解添加到其中一个 @Configuration
类之上以启用自动配置。
提示
您应该仅添加一个
@EnableAutoConfiguration
注解。我们通常建议您将其添加到主@Configuration
类中。
16.1、平滑替换自动配置
自动配置是非入侵的,您可以随时定义自己的配置来代替自动配置的特定部分。例如,如果您添加了自己的 DataSource
bean,默认的嵌入式数据库支持将不会自动配置。
如果您需要了解当前正在应用的自动配置,以及为什么使用,请使用 --debug
开关启动应用。这样做可以为核心 logger 启用调试日志,并记录到控制台。
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
属性并指定完全类名。最后,您还可以通过 spring.autoconfigure.exclude
property 控制要排除的自动配置类列表。
提示
您可以同时使用注解和 property 定义排除项