跳到主要内容

使用 @SpringBootApplication 注解

DeepSeek V3 中英对照 Using the @SpringBootApplication Annotation

许多 Spring Boot 开发者喜欢他们的应用程序能够使用自动配置、组件扫描,并能够在他们的“应用程序类”上定义额外的配置。一个单一的 @SpringBootApplication 注解可以用来启用这三个特性,即:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

// Same as @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan
@SpringBootApplication
public class MyApplication {

public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}

}
java
备注

@SpringBootApplication 还提供了别名来定制 @EnableAutoConfiguration@ComponentScan 的属性。

备注

这些功能都不是强制性的,您可以选择用它所启用的任何功能来替换这个单一的注解。例如,您可能不想在应用程序中使用组件扫描或配置属性扫描:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Import;

@SpringBootConfiguration(proxyBeanMethods = false)
@EnableAutoConfiguration
@Import({ SomeConfiguration.class, AnotherConfiguration.class })
public class MyApplication {

public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}

}
java

在这个例子中,MyApplication 就像任何其他 Spring Boot 应用程序一样,只是没有自动检测到 @Component 注解的类和 @ConfigurationProperties 注解的类,并且用户定义的 Bean 是显式导入的(参见 @Import)。