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

2021-07-15 22:55:14 字數 712 閱讀 1285

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

我們都應該知道tomcat是通過類org.apache.catalina.startup.bootstrap啟動的。首先要說的是這個類是被final修飾的,使不能被繼承的。這防止了我們通過繼承這種方式搞一些破壞。在main函式裡我們最先呼叫的是init()函式在init()裡面tomcat做了一下幾件事:

1. 初始化catalina homecatalina baseif (args.length > 0)

if (command.equals("startd")) else

if (command.equals("stopd")) else

if (command.equals("start")) else

if (command.equals("stop")) else

if (command.equals("configtest"))

system.exit(0);

} else

未完待續

Tomcat原始碼執行流程解讀

1 tomcat架構圖 開局一張圖,內容全靠編。2 從tomcat架構圖可以看出tomcat的本質就是乙個伺服器 server 然後下面有多個服務 service 每個服務下面又包含多個聯結器 connector connector是連線外部網路的紐帶。engine這個引擎下面又有多個host,而h...

Qwt原始碼解讀之QwtInterval 類

qwtinterval 類表徵乙個區間,這個區間由兩個double型別的上限值max和下限值min所表示。它可以表示 min,max min,max min,max 和 min,max 等4種情況。分析 cpp view plain copy class qwt export qwtinterval...

metaq原始碼解讀之FetchManager

fetchmanager 請求管理器介面。既然是管理器,就需要知道管理的物件是什麼?fetchrequest 管理的是一次次的請求。既然是管理器,就需要給被管理者提供容所?fetchrequestqueue 請求delay queue。既然是管理器,就需要有管理實施者?fetchrequestrun...