日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Tomcat6 類(lèi)裝載器分析

 燮羽 2010-12-08
Tomcat6 類(lèi)裝載器的實(shí)現(xiàn)都是通過(guò)繼承于JDK中的 java.lang.ClassLoader類(lèi)。
    包括Bootstrap,System,Common和Webapp這四種類(lèi)加載器來(lái)實(shí)現(xiàn)不同目錄的類(lèi)文件裝載。
    示例結(jié)構(gòu)如下:
      Bootstrap
          |
       System
          |
       Common
       /     \
  Webapp1   Webapp2 ...

  Bootstrap 類(lèi)裝載器:
      它用于加載最基本的JVM運(yùn)行環(huán)境類(lèi),裝載JDK目錄下類(lèi)文件($JAVA_HOME/jre/lib/ext)
      使用它的目的是以防一些JVM提供商實(shí)現(xiàn)時(shí),可能考慮某些原因會(huì)把部分的類(lèi)文件通過(guò)不同的多個(gè)類(lèi)加載加器加載,同時(shí)會(huì)
      屏蔽一些類(lèi)加載讓?xiě)?yīng)用層的類(lèi)加載器訪問(wèn)到。
    System 類(lèi)裝載器:
        該類(lèi)裝載器根據(jù)JVM的CLASSPATH參數(shù)設(shè)置裝載類(lèi)文件,該類(lèi)裝載器對(duì)于Tomcat內(nèi)部的程序和應(yīng)用層的程序都是可見(jiàn)的。
        注:目前tomcat5的啟動(dòng)腳本($CATALINA_HOME/bin/catalina.sh 或 %CATALINA_HOME%\bin\catalina.bat),會(huì)把全局環(huán)境變量CLASSPATH忽略。
            而且通過(guò)下面的兩個(gè)類(lèi)庫(kù)來(lái)實(shí)現(xiàn)裝載設(shè)置:
            * $CATALINA_HOME/bin/bootstrap.jar 包含一個(gè)main()方法來(lái)初始化tomcat6服務(wù),并實(shí)例類(lèi)裝器所依賴(lài)的類(lèi)文件。
            * $CATALINA_HOME/bin/tomcat-juli.jar 初始Jakarta commons logging API和 java.util.logging LogManager.
    Common 類(lèi)裝載器 
        該類(lèi)裝載器對(duì)于Tomcat內(nèi)部的程序和應(yīng)用層的程序都是可見(jiàn)的.
        當(dāng)然不太建議把應(yīng)用層的類(lèi)庫(kù)放到這里來(lái)加載。
        所有$CATALINA_HOME/lib目錄下未壓縮的類(lèi)文件,資源和壓縮后Jar/zip文件都會(huì)補(bǔ)該類(lèi)裝載器加載。
        
        Tomcat6默認(rèn)該目錄的類(lèi)文件有:
        * annotations-api.jar - JEE annotations classes.
        * catalina.jar - Implementation of the Catalina servlet container portion of Tomcat6.
        * catalina-ant.jar - Tomcat Catalina Ant tasks.
        * catalina-ha.jar - High availability package.
        * catalina-tribes.jar - Group communication package.
        * el-api.jar - EL 2.1 API.
        * jasper.jar - Jasper 2 Compiler and Runtime.
        * jasper-el.jar - Jasper 2 EL implementation.
        * jasper-jdt.jar - Eclipse JDT 3.2 Java compiler.
        * jsp-api.jar - JSP 2.1 API.
        * servlet-api.jar - Servlet 2.5 API.
        * tomcat-coyote.jar - Tomcat connectors and utility classes.
        * tomcat-dbcp.jar - package renamed database connection pool based on Commons DBCP.
        * tomcat-i18n-**.jar - Optional JARs containing resource bundles for other languages. As default bundles are also included in each individual JAR, they can be safely removed if no internationalization of messages is needed.

    Webapp 類(lèi)裝載器:
      應(yīng)用層的類(lèi)裝載器,每個(gè)應(yīng)用程序都會(huì)創(chuàng)建一個(gè)單獨(dú)的類(lèi)裝載器。該類(lèi)裝載器只能本應(yīng)用程序中可見(jiàn)。
      所有/WEB-INF/classes目錄下未壓縮的類(lèi)文件,資源文件都會(huì)補(bǔ)該類(lèi)裝載器加載。
      所有/WEB-INF/lib目錄下壓縮后Jar/zip文件都會(huì)補(bǔ)該類(lèi)裝載器加載。 


    把各個(gè)類(lèi)裝載器的定義整理出來(lái)后,Tomcat6服務(wù)器類(lèi)裝載器執(zhí)行的順序如下:
    
    * 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/lib
    * $CATALINA_HOME/lib/*.jar

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多