自动配置

Spring Boot 自动配置会根据你添加的 jar 依赖自动配置你的 Spring 应用。 例如,如果HSQLDB在你的类路径上,且你没有手动配置任何数据库连接 beans,那么 Spring Boot 会自动配置内存中的数据库。spring-doc.cadn.net.cn

你需要通过添加@EnableAutoConfiguration@SpringBootApplication注释到你的其中一个@Configuration类。spring-doc.cadn.net.cn

你应该只添加一个@SpringBootApplication@EnableAutoConfiguration注解。 我们通常建议你在主修中加入其中一个@Configuration只有上课。

逐步取代自动配置

自动配置是非侵入式的。 你可以随时开始定义自己的配置,以替换自动配置中的具体部分。 例如,如果你添加了自己的数据来源默认的嵌入式数据库支持Bean退缩了。spring-doc.cadn.net.cn

如果你需要了解当前应用了哪些自动配置以及原因,请先从以下方式开始你的应用程序--调试开关。 这样做可以为部分核心日志器创建调试日志,并将状态报告记录到控制台。spring-doc.cadn.net.cn

禁用特定的自动配置类

如果你发现应用了你不想要的特定自动配置类,可以使用 的 exclude 属性@SpringBootApplication如下示例所示,使其失效:spring-doc.cadn.net.cn

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration;

@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class MyApplication {

}
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.jdbc.autoconfigure.DataSourceAutoConfiguration

@SpringBootApplication(exclude = [DataSourceAutoConfiguration::class])
class MyApplication

如果该类不在类路径上,你可以使用除外姓名并指定了全限定的名称。 如果你更喜欢使用@EnableAutoConfiguration而不是@SpringBootApplication,排除除外姓名也都有。 最后,你还可以通过使用Spring.autoconfigure.exclude财产。spring-doc.cadn.net.cn

你可以在注释层面定义排除,也可以使用属性来定义。
尽管自动配置类是公共,类中唯一被视为公开API的方面是类的名称,可用于禁用自动配置。 这些类的实际内容,如嵌套配置类或 bean 方法,仅供内部使用,我们不建议直接使用。

自动配置包

自动配置包是各种自动配置功能在扫描实体和 Spring 数据仓库时默认查看的包。 这@EnableAutoConfiguration注释(无论是直接的还是通过其在 上的存在@SpringBootApplication) 决定了默认的自动配置包。 还可以通过以下方式配置额外的软件包@AutoConfigurationPackage注解。spring-doc.cadn.net.cn