SpringBoot學習總結

Spring Boot框架的優點

1、快速構建項目。
2、對主流開發框架的無配置集成。
3、項目可獨立運行,無須外部依賴Servlet容器。
4、提供運行時的應用監控。
5、極大的提高了開發、部署效率。
6、與云計算的天然集成。

Spring Boot的主要執行流程

執行流程主要分為三個部分

1.進行SpringApplication的初始化模塊,配置一些基本的環境變量、資源、構造器、監聽器.
2.實現了應用具體的啟動方案,包括啟動流程的監聽模塊、加載配置環境模塊、及核心的創建上下文環境模塊.
3.是自動化配置模塊,該模塊作為springboot自動配置核心

當程序開始啟動時,在啟動類中調用SpringApplication的靜態run方法,此時會執行以下操作:

1、首先新建一個SpringApplication對象;
2、然后執行對象的run()方法;
3、對配置的啟動類所在包及子包中的類進行掃描,對于有spring相關注解的類,通過反射為其創建代理對象,并交由spring容器管理。

Spring Boot自動配置的原理

Spring Boot的出現,得益于“習慣優于配置”的理念,沒有繁瑣的配置、難以集成的內容(大多數流行第三方技術都被集成),這是基于Spring 4.x提供的按條件配置Bean的能力。

1、SpringBoot啟動的時候加載主配置類(@SpringBootApplication),開啟了自動配置功能 @EnableAutoConfiguration。
2、@EnableAutoConfiguration 作用: 利用AutoConfigurationImportSelector給容器中導入一些組件;可以查看selectImports()方法的內容;
將類路徑下 META-INF/spring.factories 里面配置的所有AutoConfiguration的值加入到了容器中;
每一個這樣的 xxxAutoConfiguration類都是容器中的一個組件,都加入到容器中;用他們來做自動配置;
3、每一個自動配置類進行自動配置功能;
4、以HttpEncodingAutoConfiguration(Http編碼自動配置)為例解釋自動配置原理;
一但這個配置類生效,這個配置類就會給容器中添加各種組件,這些組件的屬性是從對應的properties類中獲取的,這些類里面的每一個屬性又是和配置文件綁定的;

a、@Configuration //表示這是一個配置類,也可以給容器中添加組件
b、@EnableConfigurationProperties//啟動指定類的ConfigurationProperties功能;將配置文件中對應的值和HttpEncodingProperties綁定起來;并把HttpEncodingProperties加入到ioc容器中 。
所有在配置文件中能配置的屬性都是在xxxxProperties類中封裝著;該類中有什么屬性,配置文件就可以配置什么;@ConfigurationProperties(prefix = "spring.http.encoding") //從配置文件中獲取指定的值和bean的屬性進行綁定。
c、@ConditionalOnWebApplication //Spring底層@Conditional注解:根據不同的條件,如果滿足指定的條件,整個配置類里面的配置就會生效; 判斷當前應用是否是web應用,如果是,當前配置類生效
d、@ConditionalOnClass(CharacterEncodingFilter.class) //判斷當前項目有沒有CharacterEncodingFilter這個類;CharacterEncodingFilter類是SpringMVC中進行亂碼解決的過濾器;
e、@ConditionalOnProperty(prefix = "spring.http.encoding", value = "enabled", matchIfMissing=true) //判斷配置文件中是否存在 spring.http.encoding.enabled這個配置;如果不存在,判斷也是成立的

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容