Tomcat原始碼執行流程解讀

2021-08-31 13:50:09 字數 1513 閱讀 7690

1、tomcat架構圖

開局一張圖,內容全靠編。

2、從tomcat架構圖可以看出tomcat的本質就是乙個伺服器(server),然後下面有多個服務(service),每個服務下面又包含多個聯結器(connector)。

connector是連線外部網路的紐帶。

engine這個引擎下面又有多個host,而host下面又有多個context。

我們的程式其實就執行在context中。想要將程式執行起來,首先就得將整個tomcat伺服器執行起來,根據這個架構圖的層級關係,應該是從外層一步一步載入初始化進來的。server---->service--->connector--->host--->context.......

其實這個架構圖可以從server.xm檔案中體現出來。

比如:

3、說完了tomcat的整體架構,我們就來看看tomcat到底是怎麼執行起來的。

我們接著看load方法在載入了配置檔案後下面執行的程式是什麼?

大致意思就是這個介面類是乙個公共的生命週期元件方法。catalina元件可以去實現這個介面,它提供了一致的啟動和停止機制等方法。

所以說我們應該找相應的server實現類。

說了這麼多還沒有看到架構圖中的context是怎麼初始化的?別急,馬上就來。

我們重新來看下loadonstratup這個方法,傳入的引數是container陣列:

所以為什麼要在loadonstratup 方法中傳入container陣列?就是為了載入這些容器到service中。

最後我放上另外一種tomcat的架構圖給大家:

看到了這裡後tomcat啟動時的初始化配置檔案就完成了,但是還遠遠不夠,接下來我們分析下tomcat的啟動。

4、tomcat啟動的生命週期

解讀tomcat原始碼之tomcat的啟動過程

tomcat 我們經常用到,但是有時候我們卻感到對他無比陌生,出了錯都不知道是什麼原因引起的。這個就比較尷尬,不過好在tomcat是開源免費的,我們可以看到其原始碼,那麼問題就簡單了,我們看看原始碼什麼迷惑就沒有了。最近對於tomcat有諸多不解,故看看原始碼來解惑,理解可能有些偏差,還請大神不吝賜...

Spring 原始碼解讀 推薦流程

spring源 解析 一 ioc容器 spring源 解析 二 ioc容器在web容器中的啟動 spring源 解析 三 spring jdbc spring源 解析 四 spring mvc spring源 解析 五 spring aop獲取proxy spring源 解析 六 spring宣告式...

Spring 原始碼解讀 推薦流程

spring源 解析 一 ioc容器 spring源 解析 二 ioc容器在web容器中的啟動 spring源 解析 三 spring jdbc spring源 解析 四 spring mvc spring源 解析 五 spring aop獲取proxy spring源 解析 六 spring宣告式...