@SpringBootApplication則是一個組合註解java
看它的源碼:web
@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan( excludeFilters = {@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class} )} ) public @interface SpringBootApplication { }
能夠看到它組合了@SpringBootConfiguration、@EnableAutoConfiguration以及@ComponentScan,咱們在開發的過程當中若是不使用@SpringBootApplication,則能夠組合使用這三個註解。spring
這三個註解中,@SpringBootConfiguration實際上就是@Configuration註解,代表這個類是一個配置類,安全
@EnableAutoConfiguration則表示讓Spring Boot根據類路徑中的jar包依賴爲當前項目進行自動配置,服務器
@ComponentScan的做用告訴Spring 哪一個packages 的用註解標識的類 會被spring自動掃描而且裝入bean容器。app
例如,若是你有個類用@Controller註解標識了,那麼,若是不加上@ComponentScan,自動掃描該controller,那麼該Controller就不會被spring掃描到,更不會裝入spring容器中,所以你配置的這個Controller也沒有意義。框架
類上的註解@Configuration 是最新的用註解配置spring,也就是說這是個配置文件,和原來xml配置是等效的,只不過如今用java代碼進行配置了 加上一個@Configuration註解就好了,這樣基於註解的配置,可讀性也大大增高了。spring-boot
惟一要注意的是若是咱們使用了@SpringBootApplication註解的話,系統會去入口類的同級包以及下級包中去掃描實體類微服務
spring-boot-starter-actuator
依賴會引入一組基本的Spring項目,從而實現應用的快速配置和即時可用。關於這種依賴,值得強調的一點就是當開發Web應用,尤爲是RESTful Web服務的時候,若是包含了spring-boot-starter-web
依賴,它就會爲你提供啓動嵌入式Tomcat容器的自動化配置,而且提供對微服務應用有價值的端點信息,如服務器信息、應用指標(metrics)以及環境詳情。除此以外,若是引入spring-boot-starter-security
模塊的話,actuator會自動配置Spring Security,從而爲應用提供基本的認證以及其餘高級的安全特性。它還會爲應用結構引入一個內部的審計框架,這個框架能夠用來生成報告或其餘的用途,好比開發認證失敗的鎖定策略。spa
spring boot的配置可使用Java屬性文件來進行定義,這個文件名爲application.properties
而且位於應用的classpath根目錄下。不過,一種更好的方式是使用 YAML配置,它提供告終構化以及嵌套的配置