日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Tomcat 5.5.23 文檔閱讀Tips 9 - Class Loading

系統 2160 0
本文講述了Tomcat的classloading的邏輯。?

1. 之所以要講Classloading的事情,關鍵還是解決在開發過程中碰到的class找不到,一些資源文件找不到的問題。要解決這樣的問題,就必須理解Tomcat的classloader會到什么地方去找class,找資源。?

2. 首先是一個總結,告訴我們應該怎樣防止自己的class和資源:?

(1) For classes and resources specific to a particular web application, place unpacked classes and resources under /WEB-INF/classes of your web application archive, or place JAR files containing those classes and resources under /WEB-INF/lib of your web application archive.?
(2) For classes and resources that must be shared across all web applications, place unpacked classes and resources under $CATALINA_BASE/shared/classes, or place JAR files containing those classes and resources under $CATALINA_BASE/shared/lib.?

大體的意思就是,如果資源和class文件只是for一個web app的,那么請把class文件,資源文件放到/WEB-INF/classes目錄下,如果已經將class或資源文件打成了jar包,或是一些第三方的jar包,請放到/WEB-INF/lib目錄下;如果這些class和資源文件要共享給其他的web app,請把他們放到$CATALINA_BASE/shared/classes, $CATALINA_BASE/shared/lib目錄下。這里,$CATALINA_BASE一般就是$CATALINA_HOME,只不過的當我們啟動了多個Tomcat的時候,需要用到$CATALINA_BASE,因為多個Tomcat他們的$CATALINA_HOME不一定一樣。?

3. 然后文章就詳細描述了Tomcat的一些classloader,和他們的邏輯,從而也就解釋了上面的總結,可以看到最后的webappx這種classesloader就會負責load某個webapp中的資源,而有一個叫做Shared的classloader就會load放在$CATALINA_BASE/shared目錄下的資源。這就是為什么我們把東西放在這些地方就能被發現和load的原因。具體可以看本文檔,講的很詳細,包括Tomcat下面common目錄下的東西是由哪個classloader load的(就是一個名為Common的classloader),等等。比如那個名為Catalina的classloader就負責load tomcat自己的classes,所以這個classloader對于webapp來說是不可見的。這里就是Tomcat中的classloader的關系圖:?

?

Bootstrap
?????????????|
???????System
?????????????|
???????Common
?????????/??????\
Catalina????Shared
??????????????????/????\
????????Webapp1??Webapp2?...

?

? 4. 最后文檔給出了一個非常有用的東西,也就是對于一個web app來說,tomcat是按照如下順序來尋找class和資源的:?


    Bootstrap classes of your JVM?
    System class loader classses (described above)?
    /WEB-INF/classes of your web application?
    /WEB-INF/lib/*.jar of your web application?
    $CATALINA_HOME/common/classes?
    $CATALINA_HOME/common/endorsed/*.jar?
    $CATALINA_HOME/common/i18n/*.jar?
    $CATALINA_HOME/common/lib/*.jar?
    $CATALINA_BASE/shared/classes?
    $CATALINA_BASE/shared/lib/*.jar

Tomcat 5.5.23 文檔閱讀Tips 9 - Class Loading


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 麻栗坡县| 广河县| 南丹县| 安龙县| 皮山县| 八宿县| 大关县| 永靖县| 正蓝旗| 大方县| 平果县| 小金县| 阳东县| 金坛市| 墨玉县| 绥芬河市| 北宁市| 平利县| 淳化县| 崇阳县| 新干县| 祥云县| 伊金霍洛旗| 大连市| 阳西县| 墨竹工卡县| 乐清市| 香格里拉县| 洱源县| 通海县| 公主岭市| 宁津县| 芦山县| 榆中县| 牟定县| 陕西省| 广饶县| 竹溪县| 密山市| 镇原县| 辽源市|