对于最新的稳定版本,请使用 Spring Boot 3.4.0spring-doc.cadn.net.cn

自动配置

Spring Boot 自动配置会尝试根据您添加的 jar 依赖项自动配置 Spring 应用程序。 例如,如果HSQLDB在你的 Classpath 上,并且你没有手动配置任何数据库连接 bean,那么 Spring Boot 会自动配置一个内存数据库。spring-doc.cadn.net.cn

您需要通过添加@EnableAutoConfiguration@SpringBootApplicationannotations 添加到您的@Configuration类。spring-doc.cadn.net.cn

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

逐步替换自动配置

自动配置是非侵入性的。 您可以随时开始定义自己的配置以替换自动配置的特定部分。 例如,如果您添加自己的DataSourcebean,则默认的嵌入式数据库支持会退出。spring-doc.cadn.net.cn

如果您需要了解当前正在应用的自动配置以及原因,请使用--debug开关。 这样做会为选定的核心记录器启用调试日志,并将条件报告记录到控制台。spring-doc.cadn.net.cn

禁用特定的自动配置类

如果您发现正在应用您不希望的特定自动配置类,则可以使用 exclude 属性@SpringBootApplication以禁用它们,如以下示例所示:spring-doc.cadn.net.cn

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

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

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

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

如果类不在 Classpath 上,则可以使用excludeName属性,并指定完全限定名称。 如果您更喜欢使用@EnableAutoConfiguration而不是@SpringBootApplication,excludeexcludeName也可用。 最后,您还可以使用spring.autoconfigure.exclude财产。spring-doc.cadn.net.cn

您可以在注释级别定义排除项,也可以使用 property 定义排除项。
即使自动配置类是public,类中唯一被视为公共 API 的方面是可用于禁用自动配置的类的名称。 这些类的实际内容(例如嵌套配置类或 bean 方法)仅供内部使用,我们不建议直接使用它们。

自动配置软件包

自动配置包是各种自动配置的功能在扫描实体和 Spring Data 存储库等内容时默认查找的包。 这@EnableAutoConfiguration注释(直接或通过它在@SpringBootApplication) 确定默认的自动配置包。 可以使用@AutoConfigurationPackage注解。spring-doc.cadn.net.cn