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

Tomcat 5.5.23 文檔閱讀Tips 9 - Class Loading

系統(tǒng) 2135 0
本文講述了Tomcat的classloading的邏輯。?

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

2. 首先是一個總結(jié),告訴我們應(yīng)該怎樣防止自己的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目錄下,如果已經(jīng)將class或資源文件打成了jar包,或是一些第三方的jar包,請放到/WEB-INF/lib目錄下;如果這些class和資源文件要共享給其他的web app,請把他們放到$CATALINA_BASE/shared/classes, $CATALINA_BASE/shared/lib目錄下。這里,$CATALINA_BASE一般就是$CATALINA_HOME,只不過的當(dāng)我們啟動了多個Tomcat的時候,需要用到$CATALINA_BASE,因為多個Tomcat他們的$CATALINA_HOME不一定一樣。?

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

?

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


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 休宁县| 汝城县| 扬中市| 信丰县| 玉林市| 任丘市| 衡南县| 黄石市| 石城县| 瑞金市| 都兰县| 大埔县| 江源县| 武宣县| 历史| 大荔县| 青阳县| 古交市| 佛冈县| 教育| 浮山县| 长沙县| 凤山县| 巫溪县| 社会| 镇巴县| 邯郸县| 宁武县| 扶余县| 建德市| 习水县| 福贡县| 攀枝花市| 凤山市| 九龙坡区| 黔江区| 淮安市| 漾濞| 吐鲁番市| 南充市| 武邑县|