本節主要:java
1:解析spring boot入口和@SpringBootApplication源碼詳解web
SpringBootApplication包含:spring
@SpringBootConfigurationmongodb
@ComponentScan緩存
@EnableAutoConfigurationtomcat
本文是《凱哥陪你學系列-框架學習之spring boot框架學習》中第二篇 spring boot核心(1)springboot
聲明:本文系凱哥Java(www.kaigejava.com)原創,未經容許,禁止轉載!app
一:spring boot 入口和註解解析框架
回顧上篇中,咱們講到第一個spring boot應用中入口:spring-boot
請點擊此處輸入圖片描述
說明:
spring boot的項目通常都會有*Application的入口類,入口類中會有main方法。這是一個標準的java應用程序的入口方法。
@controller:這個註解是spring的。聲明是一個controller類。
@springBootApplication:這個是springboot的註解。
請看這個類的源碼:
請點擊此處輸入圖片描述
從源碼中,咱們能夠看到這個註解實際上是一組組合註解。
先來看@springbootConfiguration這個註解。
請點擊此處輸入圖片描述
從其源碼中,咱們能夠看到該註解使用了@configuration註解。因此在使用@springbootConfiguration註解的時候,能夠不使用@configuration註解。
其實在springboot項目中給推薦使用springbootConfiguration來替代@configuration註解的。
回來接着看springbootApplication註解,其包含了@componentScan註解。
@componentScan源碼以下:
請點擊此處輸入圖片描述
@conponentScan:這個註解默認掃描@springbootapplication所在類的同級目錄以及他的子目錄。
從componentscan源碼註釋中咱們能夠看要:
請點擊此處輸入圖片描述
@EnableAutoConfiguration註解講解:
查看該註解源碼及註釋:
請點擊此處輸入圖片描述
該註解啓用自動配置。從源碼的註釋中咱們能夠知道,該註釋會使spirng boot根據項目中依賴的jar包自動配置項目的配置項。
例如:咱們在pom.xml中配置了spring-boot-starter-web的依賴,項目中也就會引入SpringMVC的依賴,Spring Boot就會自動配置tomcat和SpringMVC。spring boot自動配置後以下圖:
請點擊此處輸入圖片描述
延伸:
經過上面的瞭解,咱們得知,spring boot會根據項目中jar包依賴,自動作出配置,spring boot支持的自動配置以下(很是多的。下圖並不是所有):
請點擊此處輸入圖片描述
從上圖中咱們能夠看到不少咱們熟悉的已經被自動配置了。
如:
批處理框架 spring batch。
cache緩存
spring cloud
數據處理的 spring jpa
mongodb、neo4j、redi、solr等
若是咱們想,不須要spring boot自動配置,想關閉某一項的自動配置,又該如何設置呢?
歡迎繼續學習下一篇。在下一篇中咱們將作出解答。
本系列其餘文章:
spring boot框架學習學前掌握之重要註解(1)-spring的java配置方式
spring boot框架學習學前掌握之重要註解(2)-經過java的配置方式進行配置spring
spring boot框架學習學前掌握之重要註解(3)-經過註解方式讀取外部資源配置文件
spring boot框架學習學前掌握之重要註解(4)-經過註解方式讀取外部資源配置文件2
spring boot框架學習1-認識spring boot和快速入門
spring boot框架學習2-spring boot核心(1)
歡迎關注凱哥公衆號:凱哥Java
歡迎訪問凱哥我的網站:www.kaigejava.com
本文出處:http://www.kaigejava.com/article/detail/49