tomcat 我們經常用到,但是有時候我們卻感到對他無比陌生,出了錯都不知道是什麼原因引起的。這個就比較尷尬,不過好在tomcat是開源免費的,我們可以看到其原始碼,那麼問題就簡單了,我們看看原始碼什麼迷惑就沒有了。最近對於tomcat有諸多不解,故看看原始碼來解惑,理解可能有些偏差,還請大神不吝賜教,小子在此謝過。
我們都應該知道tomcat是通過類org.apache.catalina.startup.bootstrap
啟動的。首先要說的是這個類是被final修飾的,使不能被繼承的。這防止了我們通過繼承這種方式搞一些破壞。在main函式裡我們最先呼叫的是init()
函式在init()
裡面tomcat做了一下幾件事:
1. 初始化catalina home
和catalina base
if (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...