16. Auto-configuration
Spring Boot 自动配置会尝试根据您添加的 jar 依赖项自动配置您的 Spring 应用程序。例如,如果HSQLDB
在 Classpath 上,并且您尚未手动配置任何数据库连接 bean,那么我们将自动配置内存数据库。
您需要通过向@Configuration
类之一添加@EnableAutoConfiguration
或@SpringBootApplication
Comments 来选择自动配置。
Tip
您只能添加一个@EnableAutoConfiguration
Comments。我们通常建议您将其添加到主要的@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 中,则可以使用 Comments 的excludeName
属性,并指定完全限定的名称。最后,您还可以通过spring.autoconfigure.exclude
属性控制要排除的自动配置类的列表。
Tip
您可以在 Comments 级别和使用属性来定义排除项。