16. 自动配置

Spring Boot的自动配置机制尝试根据所添加的jar依赖来自动配置您的Spring程序。例如,如果HSQLDB在您的类路径上,而且您尚未手动配置任何数据库连接bean,那么我们会自动配置一个内存数据库。

您需要通过将@EnableAutoConfiguration@SpringBootApplication注解添加到一个@Configuration类来激活自动配置。

应当仅添加一次@EnableAutoConfiguration注解,我们通常建议您将其添加到主@Configuration类。

16.1 逐步替代自动配置

自动配置是非侵入性的,您可以随时开始定义自己的配置来替代特定部分的自动配置。例如,如果您添加了自己的DataSourcebean,则默认的内置数据库支持将会移除。

如果您需要了解当前正在应用的自动配置以及其缘由,使用--debug来启动您的程序。这将启用调试日志选择核心日志记录器,并将自动配置信息记录到控制台。

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 {
}

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

既可以在注解级别也可以使用属性定义排除项。


书籍推荐