16、自动配置

Spring Boot 自动配置尝试根据您添加的 jar 依赖自动配置 Spring 应用。例如,如果 classpath 下存在 HSQLDB,并且您没有手动配置任何数据库连接 bean,那么 Spring Boot 将自动配置一个内存数据库。

您需要通过将 @EnableAutoConfiguration 或者 @SpringBootApplication 注解添加到其中一个 @Configuration 类之上以启用自动配置。

提示

您应该仅添加一个 @EnableAutoConfiguration 注解。我们通常建议您将其添加到主 @Configuration 类中。

16.1、平滑替换自动配置

自动配置是非入侵的,您可以随时定义自己的配置来代替自动配置的特定部分。例如,如果您添加了自己的 DataSource bean,默认的嵌入式数据库支持将不会自动配置。

如果您需要了解当前正在应用的自动配置,以及为什么使用,请使用 --debug 开关启动应用。这样做可以为核心 logger 启用调试日志,并记录到控制台。

16.2、禁用指定的自动配置类

如果您发现在正在使用不需要的自动配置类,可以通过使用 @EnableAutoConfigurationexclude 属性来禁用它们。

  1. import org.springframework.boot.autoconfigure.*;
  2. import org.springframework.boot.autoconfigure.jdbc.*;
  3. import org.springframework.context.annotation.*;
  4. @Configuration
  5. @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
  6. public class MyConfiguration {
  7. }

如果类不在 classpath 下,您可以使用注解的 excludeName 属性并指定完全类名。最后,您还可以通过 spring.autoconfigure.exclude property 控制要排除的自动配置类列表。

提示

您可以同时使用注解和 property 定义排除项