@EnableAutoConfiguration:这个注解是是Springboot根据我们所引入的jar包自动配置的,假设我们有自己的配置类则会覆盖
—————————————————————————————————————————————————
@ComponentScan:是告诉springboot进行包扫描的(可以定义)
—————————————————————————————————————————————————
@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
—————————————————————————————————————————————————
@SpringBootApplication:注解等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan
—————————————————————————————————————————————————
官方文档是这么说的:
许多Spring Boot开发人员总是使用@Configuration,@EnableAutoConfiguration和@ComponentScan来标注它们的主类。 由于这些注解经常一起使用(特别是如果您遵循之前说的最佳实践),Spring Boot提供了一个方便的@SpringBootApplication注解作为这三个的替代方法。
@SpringBootApplication注解相当于使用@Configuration,@EnableAutoConfiguration和@ComponentScan和他们的默认属性:
package com.example.myproject;
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的属性。