@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的屬性。