|
此版本仍在开发中,尚未被视为稳定版本。如需最新稳定版本,请使用 Spring Boot 4.0.4! |
Auto-configuration
Spring Boot 自动配置会根据您添加的 JAR 依赖项,尝试自动配置您的 Spring 应用程序。
例如,如果 HSQLDB 在您的类路径中,且您未手动配置任何数据库连接 Bean,则 Spring Boot 将自动配置一个内存数据库。
您需要通过在某个 @Configuration 类上添加 @EnableAutoConfiguration 或 @SpringBootApplication 注解,来显式启用自动配置功能。
您应仅添加一个 @SpringBootApplication 或 @EnableAutoConfiguration 注解。
我们通常建议您仅在主 @Configuration 类中添加其中一种注解。 |
逐步替换自动配置
自动配置是非侵入式的。
在任何时候,您都可以开始定义自己的配置,以替换自动配置的特定部分。
例如,如果您添加了自己的 DataSource Bean,则默认的嵌入式数据库支持将自动退出。
如果您需要了解当前正在应用哪些自动配置以及原因,请使用 --debug 参数启动应用程序。
这样做将为一组核心日志记录器启用调试日志,并在控制台输出一个条件报告。
禁用特定的自动配置类
如果您发现某些不希望启用的特定自动配置类正在被应用,可以使用 @SpringBootApplication 的 exclude 属性来禁用它们,如下例所示:
-
Java
-
Kotlin
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 而非 @SpringBootApplication,那么 exclude 和 excludeName 也同样可用。
最后,您还可以通过使用 spring.autoconfigure.exclude 属性来控制需要排除的自动配置类列表。
| 您既可以在注解级别定义排除项,也可以通过属性来定义。 |
尽管自动配置类为 public,但此类中唯一被视为公共 API 的部分是类名,该类名可用于禁用自动配置。
这些类的实际内容(例如嵌套的配置类或 Bean 方法)仅限内部使用,我们不建议直接使用它们。 |
自动配置包
自动配置包是各类自动配置功能在扫描实体(entities)和 Spring Data 仓库(repositories)等组件时默认查找的包。
@EnableAutoConfiguration 注解(直接使用,或通过其在 @SpringBootApplication 上的存在)决定了默认的自动配置包。
可使用 @AutoConfigurationPackage 注解配置额外的包。