On this page
18. 使用@SpringBootApplication Comments
许多 Spring Boot 开发人员喜欢他们的应用程序使用自动配置,组件扫描,并能够在其“应用程序类”上定义额外的配置。单个@SpringBootApplication
Comments 可用于启用这三个功能,即:
@EnableAutoConfiguration
:启用Spring Boot 的自动配置机制@ComponentScan
:对应用程序所在的软件包启用@Component
扫描(请参见最佳做法)@Configuration
:允许在上下文中注册额外的 bean 或导入其他配置类
@SpringBootApplication
Comments 等效于将@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);
}
}
Note
@SpringBootApplication
还提供别名以自定义@EnableAutoConfiguration
和@ComponentScan
的属性。
Note
这些功能都不是强制性的,您可以选择用它启用的任何功能替换此单个 Comments。例如,您可能不想在应用程序中使用组件扫描:
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
Comments 的类并且显式导入用户定义的 Bean(请参阅@Import
)。