1. 程式人生 > >Springboot 應用工作原理簡述

Springboot 應用工作原理簡述

同傳統的Spring開發模式相比,開發Springboot應用時,我們只需要引入相關的starter jar包就能構造一個可以執行起來的應用,這樣就可以把主要的精力用於核心業務功能的開發,非常方便和高效。

那麼,在這種方便和高效背後,Springboot是怎麼工作的?這裡對其工作原理做一個簡單的描述 :

  1. 專案主動引入的各種starter jar包通過自己的maven POM.xml將自己所依賴的jar包放到CLASSPATH;

    此時 spring-boot-autoconfigure jar包會因為任何一個starter jar包的引入被隱式引入;
    例子: spring-boot-starter-web

    依賴檔案 POM.xml
    在這裡插入圖片描述

  2. 註解了@SpringBootApplication的類的靜態main()方法執行將當前類作為主源構造一個SpringApplication並執行它;

    Springboot 應用也是java應用。
    "主源"在這裡的意思是指後續Spring對很多元件的掃描會發生在這個類所在的包及其子包。

  3. 註解@SpringBootApplication隱式使用了註解@EnableAutoConfiguration,意思是執行自動配置,然後spring-boot-autoconfigure jar的屬性檔案META-INF/spring.factories

    中定義的自動配置類被例項化。這個過程體現了自動配置中"自動"的意思。

  4. 上面步驟提到的自動配置過程中發現的配置類有自己的配置規則,它們會根據CLASSPATH上某個類的存在性,某個檔案的存在性,或者某個屬性的存在性,或者這些條件的複雜組合然後決定自己執行什麼樣的邏輯以及註冊什麼樣的bean。

    就是在這個過程中相應的應用程式上下文被準備,相應的初始化工作被執行,相應的事件被廣播和響應,並且伴隨著相應的bean的發現和註冊,當然也可能是內建servlet容器被初始化和啟動,然後,系統就進入了真正的執行時狀態。

參考文件

1.Spring Boot Tutorial


2.Key Components and Internals of Spring Boot Framework