此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.1Spring中文文档

此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Boot 3.3.1Spring中文文档

Spring Boot 自动配置会尝试根据您添加的 jar 依赖项自动配置 Spring 应用程序。 例如,如果在您的类路径上,并且您尚未手动配置任何数据库连接 bean,则 Spring Boot 会自动配置内存中数据库。HSQLDBSpring中文文档

您需要通过将 或 注释添加到其中一个类来选择加入自动配置。@EnableAutoConfiguration@SpringBootApplication@ConfigurationSpring中文文档

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

逐步取代自动配置

自动配置是非侵入式的。 在任何时候,您都可以开始定义自己的配置以替换自动配置的特定部分。 例如,如果您添加自己的 Bean,则默认的嵌入式数据库支持会退出。DataSourceSpring中文文档

如果您需要了解当前正在应用的自动配置以及原因,请使用交换机启动应用程序。 这样做可以为选定的核心记录器启用调试日志,并将条件报告记录到控制台。--debugSpring中文文档

禁用特定的自动配置类

如果发现应用了不需要的特定自动配置类,则可以使用 exclude 属性来禁用它们,如以下示例所示:@SpringBootApplicationSpring中文文档

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

如果类不在类路径上,则可以使用批注的属性并指定完全限定的名称。 如果您更喜欢使用而不是 ,也可以使用。 最后,还可以使用属性控制要排除的自动配置类的列表。excludeName@EnableAutoConfiguration@SpringBootApplicationexcludeexcludeNamespring.autoconfigure.excludeSpring中文文档

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

自动配置包

自动配置包是各种自动配置功能在扫描实体和 Spring Data 存储库等内容时默认查看的包。 注解(直接或通过其存在)确定默认的自动配置包。 可以使用注释配置其他软件包。@EnableAutoConfiguration@SpringBootApplication@AutoConfigurationPackageSpring中文文档