许多SpringBoot开发者都希望他们的app可以使用自动配置机制、自动扫描组件以及支持额外的配置。一个单独的@SpringBootApplication注释可以使用这三个特性,换句话说:
- @EnableAutoConfiguration:启动SpringBoot自动配置机制;
- @ComponentScan:扫描应用入口类所在的包下所有的@Component组件;
- @Configuration:允许在代码中添加额外的配置或者导入一个第三方的配置类;
@SpringBootApplication注释等价于使用@EnableAutoConfiguration、@ComponentScan、@Configuration注释及他们的默认属性,如下所示:
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注释的属性。
提示:
这个注释不是强制性的,你可以使用任何受支持特性来替代这个单独的注释。例如,你在程序中不想使用自动扫描组件的功能,代码如下:
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); } }
在这个例子中,除了不支持自动扫描组件和显示导入了用户自定义的Bean(看@Import部分)外,示例应用和其他的SpringBoot应用基本一致。
总目录:总纲 Spring Boot官方文档(2.1.5版翻译)
下一篇:19.运行你的应用