@SpringBootConfiguration是Spring Boot应用的配置注解,该注解也是一个组合注解,源代码可以从spring-boot-2.1.4.RELEASE.jar依赖包中查看org/springframework/boot/ SpringBootConfiguration.java。在Spring Boot应用中推荐使用@SpringBootConfiguration注解替代@Configuration注解。
@EnableAutoConfiguration注解可以让Spring Boot根据当前应用项目所依赖的jar自动配置项目的相关配置。例如,在Spring Boot项目的pom.xml文件中添加了spring-boot-starter-web依赖,Spring Boot项目会自动添加Tomcat和Spring MVC的依赖,同时对Tomcat和Spring MVC进行自动配置。打开pom.xml文件,选择Dependency Hierarchy页面查看spring-boot-starter-web的自动配置,如下图所示。
该注解的功能是让Spring Boot自动扫描@SpringBootApplication所在类的同级包以及它的子包中的配置,所以建议将@SpringBootApplication注解的入口类放置在项目包下(Group Id+Artifact Id组合的包名),这样可以保证Spring Boot自动扫描项目所有包中的配置。
Spring Boot应用通常都有一个名为*Application的程序入口类,该入口类需要使用Spring Boot的核心注解@SpringBootApplication标注为应用的启动类。
Spring Boot的核心注解@SpringBootApplication是一个组合注解,主要组合了@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan注解。
在com.example.boot4_2包下面创建一个类Boot42Application:
package com.example.boot4_2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Boot42Application { public static void main(String[] args) { SpringApplication.run(Boot42Application.class, args); } }