国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Tomcat7---類是怎樣被加載的

jollywing / 3058人閱讀

摘要:所有這些類對于和應用程序都是可見的。或者日志實現類。其中包括稱為的的增強類以及由內部使用的庫的軟件包重命名副本。這個類加載器搜索的位置由中的屬性定義。中的所有其他類加載器都遵循通常的代理模式。

最好先了解Java的雙親委派機制再看這篇文章。
整體架構
      Bootstrap
          |
       System
          |
       Common
       /     
  Webapp1   Webapp2 ...
類加載器定義

Bootstrap 這個類加載器包含Java虛擬機提供的基本運行時類,以及來自System Extensions目錄
$JAVA_HOME/jre/lib/ext)中的JAR文件的所有類。注意:有些JVM可能將其實現為多個類加載器,比如HotSpot就分為啟動類加載器(Bootstrap ClassLoader)和擴展類加載器(Extension ClassLoader)。

System 這個類加載器通常是通過CLASSPATH環境變量的內容初始化的。 所有這些類對于Tomcat和Web應用程序都是可見的。但是,標準Tomcat啟動腳本($CATALINA_HOME/bin/catalina.sh%CATALINA_HOME%incatalina.bat)完全忽略了CLASSPATH環境變量本身的內容,而是從以下存儲庫(repositories)構建System類加載器:

$CATALINA_HOME/bin/bootstrap.jar:包含用于初始化Tomcat服務器的main()`方法以及它所依賴的類加載器實現類。

$CATALINA_BASE/bin/tomcat-juli.jar或者$CATALINA_HOME/bin/tomcat-juli.jar:日志實現類。其中包括稱為Tomcat JULIjava.util.loggingAPI的增強類以及由Tomcat內部使用的ApacheCommons Logging庫的軟件包重命名副本。

Common
這個類加載器包含了對Tomcat內部類和所有Web應用程序都可見的其他類。通常,應用程序類別不應放置在此處。這個類加載器搜索的位置由$CATALINA_BASE/conf/catalina.properties中的common.loader屬性定義。默認設置將按照它們列出的順序搜索以下位置:

$CATALINA_BASE/lib下沒打包的classes和資源文件

$CATALINA_BASE/lib下的jar

$CATALINA_HOME/lib下沒打包的classes和資源文件

$CATALINA_HOME/lib下的jar

WebappX 為每個部署在單個Tomcat實例中的Web應用程序創建類加載器。
Web應用程序的/WEB-INF/classes目錄中的所有未打包的類和資源,以及Web應用程序的/WEB-INF/lib目錄下的JAR文件中的類和資源都可以被此Web應用程序訪問,但不能訪問到其他的。

如上所述,Web應用程序類加載器與默認的Java委托模型不同(即雙親委派)。當處理從Web應用程序的WebappX類加載器加載類的請求時,該類加載器將首先在本地存儲庫中查找,而不是在查找之前進行委托。 但是有例外,作為JRE基類的一部分的類不能被覆蓋。例如J2SE 1.4+中的XML解析器組件,以及Java 8將會使用的類。最后,包含Servlet API類的任何JAR文件將被類加載器顯式忽略 - 你的Web應用程序中不應該包含這些類。 Tomcat中的所有其他類加載器都遵循通常的代理模式。

因此,從Web應用程序的角度來看,類或資源加載按以下順序在以下存儲庫中查找:

Bootstrap classes of your JVM

web應用的/WEB-INF/classes

web應用的/WEB-INF/lib/*.jar

System class loader classes (如上所述)

Common class loader classes (如上所述)

如果Web應用程序類加載器配置為,那么順序將變為:

Bootstrap classes of your JVM

System class loader classes (如上所述)

Common class loader classes (如上所述)

web應用的/WEB-INF/classes

web應用的/WEB-INF/lib/*.jar

資料

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68659.html

相關文章

  • Maven詳細教程

    摘要:清理上一次執行創建的文件處理資源文件編譯代碼執行單元測試文件創建拷貝到本地的倉庫下面發布生成文檔將工程所有文檔生成網站,生成的網站界面默認和的項目站點類似,但是其文檔用格式寫的,目前不支持,需要用其他插件配合才能支持。 前言 本文可以幫助你加深對Maven的整體認識,不是一篇基礎文章。如果你現在還沒有用 Maven 跑過 HelloWorld,那么本文可能不適合你。 一、Maven簡介...

    Keagan 評論0 收藏0
  • 《轉載》經典Java基礎面試題集錦

    摘要:經典的基礎面試題集錦經典的基礎面試題集錦,歡迎收藏和分享。類變量或者說靜態變量是通過這個關鍵字來聲明的。非靜態變量在每一個對象實例上都有單獨的一份值。對象允許程序和數據進行封裝,以減少潛在的干涉。 經典的Java基礎面試題集錦 經典的Java基礎面試題集錦,歡迎收藏和分享。 問題:如果main方法被聲明為private會怎樣? 答案:能正常編譯,但運行的時候會提示main方法不是pub...

    Winer 評論0 收藏0

發表評論

0條評論

jollywing

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<