此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.4spring-doc.cn

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.4spring-doc.cn

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

您需要通过向其中一个类添加 or 注解来选择自动配置。@EnableAutoConfiguration@SpringBootApplication@Configurationspring-doc.cn

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

逐步替换自动配置

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

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

禁用特定的自动配置类

如果您发现正在应用不需要的特定自动配置类,则可以使用 exclude 属性 of 来禁用它们,如以下示例所示:@SpringBootApplicationspring-doc.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 上,则可以使用 Comments 的属性并指定完全限定名称。 如果您更喜欢使用 而不是 ,并且也可以使用。 最后,您还可以使用 property 控制要排除的自动配置类的列表。excludeName@EnableAutoConfiguration@SpringBootApplicationexcludeexcludeNamespring.autoconfigure.excludespring-doc.cn

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

自动配置软件包

自动配置包是各种自动配置的功能在扫描实体和 Spring Data 存储库等内容时默认查找的包。 注释(直接或通过其存在 on )确定默认的自动配置包。 可以使用 annotation 配置其他软件包。@EnableAutoConfiguration@SpringBootApplication@AutoConfigurationPackagespring-doc.cn