BootStrap main 方法都做了什麼?

2021-07-09 18:43:50 字數 1529 閱讀 7729

if (daemon == null) catch (throwable t)

daemon = bootstrap;

} else

try

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

} catch (throwable t)

handlethrowable(t);

t.printstacktrace();

system.exit(1);}}

init() 方法主要做了以下幾個操作。

1.載入了這3個成員變數。

protected classloader commonloader = null;

protected classloader catalinaloader = null;

protected classloader sharedloader = null;

根據%catalina.home%\conf\catalina.properties的3個鍵值載入這3個物件。

commonloader物件 載入 common.loader鍵鍵

catalinaloader物件 載入 server.loader鍵鍵

sharedloader物件 載入 server.loader鍵值

tomcat 預設情況下,server.loader,shared.loader 這兩個鍵值為空。

而這時tomcat 就會把catalinaloader 和 sharedloader 這兩個物件的引用指向commonloader 物件。

common.loader 的鍵值預設是四個路徑

common.loader="$/lib","$/lib/*.jar","$/lib","$/lib/*.jar"tomcat 會通過urlclassloader 把這些路徑的jar 包載入到classloader 中,然後返回給commonloader 物件。

2.把當前執行緒的類載入器的引用指向commonloader 物件。

3.commonloader 載入乙個 org.apache.catalina.startup.catalina 的物件,然後呼叫這個方法的setparentclassloader 設定parentclassloader 全域性變數的引用為commonloader 物件。

4.設定catalinadaemon 物件的引用為commonloader 物件。

6.設定daemon 的引用為bootstrap 物件

private static bootstrap daemon = null;

方法的呼叫 this方法 構造方法

1 呼叫者和被呼叫者方法位於同一類中,呼叫形式如下 this 方法名 在大多數情況下,關鍵字this可以忽略 呼叫者位於被呼叫方法所在類的外部 物件名.方法名或者類名.方法名 抽象類只能作為父類,不能例項化。只能被繼承 抽象方法是一種只有方法宣告而沒有方法體定義的特殊方法,最後有乙個分號 而沒有方法...

例項方法 靜態方法 類方法

首先新建乙個日期date類,屬性為年,月,日,tomorrow 是例項方法,這個最常見,比較簡單,例項方法的第乙個引數是例項物件self 當我們傳入的年月日是2018 6 4這樣的形式,我們就需要先進行字串處理,在這裡使用了元組的拆包 這是最基本的方式,但是這樣寫會有乙個問題,每次傳參都需要進行字串...

類方法 物件方法 原型方法

js類方法,物件方法,原型的理解 function people name 類方法 people.run function 原型方法 people.prototype.introducechinese function 測試 var p1 new people windking p1.introdu...