catalina主要負(fù)責(zé)啟動(dòng)關(guān)閉shell程序
bootstarp會(huì)通過java反射的方式創(chuàng)建catalina實(shí)例,在起收到指令之后通過catalina啟動(dòng)/關(guān)閉容器绘证。
catalina有幾個(gè)主要的方法
load
start
await
stop
load主要做這幾件事情
在解析器里面加入standardServer的各種解析規(guī)則
獲取conf/server.xml配置文件
在編譯器解析配置的路徑下的文件內(nèi)容
standardServer初始化
如下是解析器中加入的一部分待解析規(guī)則
主要是解析server的配置以及server下各個(gè)資源的配置
start主要做如下幾件事情
啟動(dòng)standardServer
將catalina的shutdownhook注冊(cè)到JVM
如果之前(bootstrap)設(shè)置了等待狀態(tài)那么切換等待狀態(tài)接受命令行指令
await主要做如下事情
將standardServer設(shè)為等待狀態(tài)
stop分為stop何stopServer兩種方式
stop的主要過程是
移除shutdown hook
standardServer關(guān)閉
standardServer銷毀
stopServer比stop更加麻煩一點(diǎn),這部分代碼理解的不是很透徹
先判斷本地是否存在Server,如果不存在,則獲取server.xml的配置远搪,去根據(jù)ip和port發(fā)送shutdown指令,停止遠(yuǎn)端的server