【TOMCAT】Tomcat6 類裝載器

Tomcat6 類裝載器

1人收藏此文章,收藏此文章 發表於6個月前 , 已有40次閱讀  共0個評論1人收藏此文章
Tomcat6 類裝載器的實現都是通過繼承於JDK中的 java.lang.ClassLoader類。
     包括Bootstrap,System,Common和Webapp這四種類加載器來實現不同目錄的類文件裝載。
     示例結構如下:
       Bootstrap
           |
        System
           |
        Common
        /     \
   Webapp1   Webapp2 ...

   Bootstrap 類裝載器:
       它用於加載最基本的JVM運行環境類,裝載JDK目錄下類文件($JAVA_HOME/jre/lib/ext)
       使用它的目的是以防一些JVM提供商實現時,可能考慮某些原因會把部分的類文件通過不同的多個類加載加器加載,同時會
       屏蔽一些類加載讓應用層的類加載器訪問到。
     System 類裝載器:
         該類裝載器根據JVM的CLASSPATH參數設置裝載類文件,該類裝載器對於Tomcat內部的程序和應用層的程序都是可見的。
         注:目前tomcat5的啓動腳本($CATALINA_HOME/bin/catalina.sh 或 %CATALINA_HOME%\bin\catalina.bat),會把全局環境變量CLASSPATH忽略。
             而且通過下面的兩個類庫來實現裝載設置:
             * $CATALINA_HOME/bin/bootstrap.jar 包含一個main()方法來初始化tomcat6服務,並實例類裝器所依賴的類文件。
             * $CATALINA_HOME/bin/tomcat-juli.jar 初始Jakarta commons logging API和 java.util.logging LogManager.
     Common 類裝載器
         該類裝載器對於Tomcat內部的程序和應用層的程序都是可見的.
         當然不太建議把應用層的類庫放到這裏來加載。
         所有$CATALINA_HOME/lib目錄下未壓縮的類文件,資源和壓縮後Jar/zip文件都會補該類裝載器加載。
        
         Tomcat6默認該目錄的類文件有:
         * 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 類裝載器:
       應用層的類裝載器,每個應用程序都會創建一個單獨的類裝載器。該類裝載器只能本應用程序中可見。
       所有/WEB-INF/classes目錄下未壓縮的類文件,資源文件都會補該類裝載器加載。
       所有/WEB-INF/lib目錄下壓縮後Jar/zip文件都會補該類裝載器加載。


     把各個類裝載器的定義整理出來後,Tomcat6服務器類裝載器執行的順序如下:
    
     * 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
關鍵字:類裝載器,java , Tomcat
聲明:OSCHINA 博客文章版權屬於作者,受法律保護。未經作者同意不得轉載。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章