Servlet容器的啟動過程 Tomcat為例子

2021-06-22 10:40:53 字數 867 閱讀 7972

新增乙個web應用時將會建立乙個standardcontext容器,並且給context容器設定必要的引數url和path,乙個是訪問路徑而另外乙個是應用的實際物理路徑,這兩個引數就是tomcat中的配置引數.其中最重要的乙個配置是contextconfig,它負責整個web應用配置的解析工作.最後還要把這個context容器加到父容器host中.接下來就可以啟動tomcat了.

tomcat的啟動邏輯是基於觀察者設計模式設計的,所有的容器都會繼承lifecycle介面,它管理著容器的整個生命週期,所有容器的修改和狀態的改變都會由它去通知已經註冊的觀察者(listener).

contextconfig的init方法將會主要完成的工作有:

1.建立用於解析xml配置檔案的contextdigester物件.

2.讀取預設context.xml配置檔案

3.讀取預設host配置檔案

4.讀取預設context自身的配置檔案

5.設定context的docbase(應用的物理路徑)

contextconfig的init方法完成後,context容器就會執行startinternal方法.主要包括以下幾個部分:

1.建立讀取資源檔案的物件

2.建立classloader物件

3.設定應用的工作目錄

4.啟動相關的輔助類,如logger

5.修改啟動狀態,通知感興趣的觀察者(web應用的配置)

6.子容器的初始化

7.獲取serveletcontext並且設定必要的引數

8.初始化"load on startup"的servlet

web應用的初始化工作是在contextconfig的configurestart方法中實現的,應用初始化就是要解析web.xml檔案.

spring容器以及Spring啟動過程

beanfactory介面包含以下幾個基本方法 boolean containbean string name 判斷spring容器是否包含id為name的bean例項。getbean classrequiredtypr 獲取spring容器中屬於requiredtype型別的唯一的bean例項。o...

Tomcat的容器模型和啟動過程

最近在看tomcat的原始碼,對tomcat的架構深入地研究了下,下面讓我們來看下tomcat的容器模型 從上圖可以看出 tomcat 的容器分為四個等級,真正管理 servlet 的容器是 context 容器,乙個 context 對應乙個 web 工程。接下來我們來看下tomcat 啟動過程的...

docker學習 3 容器的啟動過程

這一節我們來稍微了解下docker原理性的東西 docker run i t ubuntu bin bash輸入上面這行命令,啟動乙個ubuntu容器時,到底發生了什麼?大致過程可以用下圖描述 首先系統要有乙個docker daemon的後台程序在執行,當剛才這行命令敲下時,1.docker cli...