SpringBoot之如何自動啓動tomcat

首先我們要先理解Springboot和Spring mvc的區別 
SpringMVC項目構建一定包含三要素
1 配置web.xml  啓動時去掃描 2,3 文件

2 配置application.xml  啓動時進行bean初始化

3 配置springmvc.xml   依賴注入

而Springboot之所以能直接啓動不需要做任何配置就是因爲他把 2,3 兩個事情自動執行了。這個後面文章會提及,今天主要只說以下如何啓動的tomcat

我們來直接看源碼

1  證明是Spring項目 然後執行run方法

2 我們進去run方法,繼續向下跟蹤

 

3 看到refreshContext 方法我們就比較熟悉了

 

4 我們繼續向下跟進 

 

5 繼續近refresh 

 6 繼續向下 AbstractApplicationContext實現了ConfigurableApplicationContext

7 一定是這個servletwebserver 因爲啓動程序要被訪問到一定是基於servlet構建一個地址,然後添加到tomcat中

 8  終於看到曙光了 開始看到他準備創建webserver了 創建web服務器

9 我們繼續向下  這裏它就會先判斷是否webserver是否爲空從而來獲取webserver自動化初始

10  這裏不用多想一定是tomcat 其實Springboot 啓動是可以修改這個中間件的 默認它使用的是tomcat 如果想修改,感興趣的小夥伴可以自行查找試試,不過比較麻煩。

 

11 我們繼續向下看到了吧 這個 new Tomcat 並且進行了一些參數初始化,這個就類似於咱們自己在spring 裏自己創建tomcat是一樣的

 

 

下圖這個是咱們自己手寫的tomcat啓動 ,只要添加依賴你也可以模仿Springboot內置tomcat 直接main啓動

12 我們繼續看源碼向下

進去 getTomcatWebServer() 發現它在這裏new了tomcat服務

 

13  這裏我們就能看出他在這裏啓動了tomcat

 

14 在這裏開啓了守護進程,保證服務是一直啓動

 15 這裏awati守護進程啓動 到此就完成了 tomcat內嵌的自動啓動

Springboot 之內嵌tomcat 就先講到這裏。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章