如需获取最新稳定版本,请使用 Spring Boot 4.0.4spring-doc.cadn.net.cn

使用 @SpringBootApplication 注解

许多 Spring Boot 开发者希望其应用程序能够使用自动配置、组件扫描,并能够在“应用程序类”上定义额外的配置。 一个 @SpringBootApplication 注解即可启用上述三项功能,即:spring-doc.cadn.net.cn

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);
	}

}
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication

// same as @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan
@SpringBootApplication
class MyApplication

fun main(args: Array<String>) {
	runApplication<MyApplication>(*args)
}
@SpringBootApplication 还提供了别名,用于自定义 @EnableAutoConfiguration@ComponentScan 的属性。

这些功能均非强制要求,您可以选择用该注解所启用的任意单项功能来替代这个单一注解。 例如,您可能不希望在应用程序中使用组件扫描(component scan)或配置属性扫描(configuration properties scan):spring-doc.cadn.net.cn

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);
	}

}
import org.springframework.boot.SpringBootConfiguration
import org.springframework.boot.autoconfigure.EnableAutoConfiguration
import org.springframework.boot.docs.using.structuringyourcode.locatingthemainclass.MyApplication
import org.springframework.boot.runApplication
import org.springframework.context.annotation.Import

@SpringBootConfiguration(proxyBeanMethods = false)
@EnableAutoConfiguration
@Import(SomeConfiguration::class, AnotherConfiguration::class)
class MyApplication

fun main(args: Array<String>) {
	runApplication<MyApplication>(*args)
}

在此示例中,MyApplication 与其他任何 Spring Boot 应用程序一样,只是带有 @Component 注解的类和带有 @ConfigurationProperties 注解的类不会被自动检测,且用户定义的 Bean 需显式导入(参见 @Import)。spring-doc.cadn.net.cn