许多Spring boot 开发人员喜欢他们的应用程序使用自动配置,组件扫描,并能够在他们的’应用程序类’上定义额外的配置.单个@SpringbootApplication
注解可用于启用这三个功能,即:
@EnableAutoConfiguration
:启用Spring Boot的自动配置机制@ComponentScan
:对应用程序内的包启用@Component
扫描(请参阅最佳实战)Configuration
:允许在上下文中注册额外的Beans或导入其他配置类
SpringBootApplication
注解等效于使用@Configuration
,@EnableAutoConfiguration
和@ComponentScan
及其默认属性,如下示例所示:
package com.example.myapplication;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}
SpringBootApplication
还提供了别名来定义@EnableAutoConfiguration
和@ComponentScan
的属性.
*这些功能中的None是强制性的,您可以选择使用它启用的任何功能替换此单个注释。例如,您可能不希望在应用程序中使用组件扫描:
package com.example.myapplication;
import org.springframework.boot.SpringApplication;
import org.springframework.context.annotation.ComponentScan
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;@Configuration
@EnableAutoConfiguration
@Import({ MyConfig.class, MyAnotherConfig.class })
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}*
在此示例中,Application
与任何其他Spring Boot 应用程序一样,除了@Component
,未自动检测带注释的类,并且显示的定义beans(请参阅@Import
.)