Spring Boot 自动配置会尝试根据你添加的 jar 依赖执行自动配置。比如,如果 HSQLDB 在类路径下,并且没有手动配置任何数据库连接 Bean,就会自动配置一个内存数据库。

需要为你的一个 @Configuration 类添加 EnableAutoConfigurationSpringBoorApplication 注解选择启用自动配置。

仅需要配置一个 @EnableAutoConfiguration 注解,我们一般建议添加到最根级的 @Configuration 类上。

渐进替换自动配置

自动配置是非侵入式的,任何节点都可以开始定义自己的配置来替换掉原有配置的特定部分。比如,如果你添加了自己的 DataSource bean,默认的嵌入的数据库支持就会被抛弃。

如果需要获取当前正在使用的自动配置是什么和原因,启动项目时加上 --debug 参数。这将启用选用的核心日志记录器的调试日志,并在控制台输出自动配置的日志报告。

禁用特定自动配置

如果发现使用到的特定的配置类你不想要,可以使用 @EnableAutoConfiguration 的排除参数禁用他们。

import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;

@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {

}

排除定义既可以写在注解层面也可以使用参数。