对于最新稳定版本,请使用Spring Boot 4.0.0spring-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)
}

这些功能都不是强制的,你可以选择用它支持的任何功能替换这个单一注释。 例如,你可能不想在应用中使用组件扫描或配置属性扫描: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)
}

在这个例子中,我的应用和其他Spring Boot应用程序没什么区别,只是@Component- 注释类和@ConfigurationProperties-注释类不会自动检测,用户定义的 Beans 会被显式导入(参见@Import).spring-doc.cadn.net.cn