Tomcat 7下如何利用 catalina.properties 部署公用類

http://blog.csdn.net/teamlet/article/details/24840959



Tomcat 有很多配置文件,其中一個是  catalina.properties ,本文介紹catalina.properties 中的設置項。


一、組成


catalina.properties中的設置項包括四個部分:


#第一部分:安全設置

package.access

package.definition


#第二部分:類加載設置

common.loader

server.loader

shared.loader


#第三部分:不需要掃描的類設置

tomcat.util.scan.DefaultJarScanner.jarsToSkip

org.apache.catalina.startup.ContextConfig.jarsToSkip

org.apache.catalina.startup.TldConfig.jarsToSkip


#第四部分:字符緩存設置

tomcat.util.buf.StringCache.byte.enabled
tomcat.util.buf.StringCache.char.enabled
tomcat.util.buf.StringCache.trainThreshold
tomcat.util.buf.StringCache.cacheSize


二、安全設置


請參見 :

http://tomcat.apache.org/tomcat-7.0-doc/security-manager-howto.html

http://www.oracle.com/technetwork/Java/seccodeguide-139067.html


三、類加載設置

請參見:

http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html


1、classloader加載順序


Bootstrap--->System--->/WEB-INF/classes---> /WEB-INF/lib/*.jar---> Common


Common的配置是通過 catalina.properties中的common.loader設置的。


2、common.loader設置


通常情況下,common.loader是已經設置好的,不需要修改。

common.loader包括以下路徑:

  • unpacked classes and resources in $CATALINA_BASE/lib
  • JAR files in $CATALINA_BASE/lib
  • unpacked classes and resources in $CATALINA_HOME/lib
  • JAR files in $CATALINA_HOME/lib
和默認的一些jar包:

  • annotations-api.jar — JavaEE annotations classes.
  • catalina.jar — Implementation of the Catalina servlet container portion of Tomcat.
  • catalina-ant.jar — Tomcat Catalina Ant tasks.
  • catalina-ha.jar — High availability package.
  • catalina-tribes.jar — Group communication package.
  • ecj-*.jar — Eclipse JDT Java compiler.
  • el-api.jar — EL 2.2 API.
  • jasper.jar — Tomcat Jasper JSP Compiler and Runtime.
  • jasper-el.jar — Tomcat Jasper EL implementation.
  • jsp-api.jar — JSP 2.2 API.
  • servlet-api.jar — Servlet 3.0 API.
  • tomcat-api.jar — Several interfaces defined by Tomcat.
  • tomcat-coyote.jar — Tomcat connectors and utility classes.
  • tomcat-dbcp.jar — Database connection pool implementation based on package-renamed copy of Apache Commons Pool and Apache 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.
  • tomcat-jdbc.jar — An alternative database connection pool implementation, known as Tomcat JDBC pool. See documentation for more details.
  • tomcat-util.jar — Common classes used by various components of Apache Tomcat.
這些都是系統和工具類,比如數據庫的驅動類庫、log 類庫可以放到此處,web應用的jar 不要放到common.loader 中。



3、server.loader 和 shared.loader


在common.loader 加載完後,tomcat啓動程序會檢查 catalina.properties文件中配置的server.loader和shared.loader是否設置

如果設置,讀取 tomcat下對應的server和shared這兩個目錄的類庫。

server和shared是對應tomcat目錄下的兩個目錄,默認的Tomcat7 下這兩個目錄是沒有的。


設置方法:

server.loader=${catalina.base}/server/classes,${catalina.base}/server/lib/*.jar

shared.loader=${catalina.base}/server/classes,${catalina.base}/server/lib/*.jar

同時需要在tomcat目錄下創建 server和shared目錄結構並將公用的、應用類放到裏面。


Bootstrap--->System--->/WEB-INF/classes---> /WEB-INF/lib/*.jar---> Common--->Server--->Shared


四、忽略掃描的類設置

默認的一些類tomcat已經設置


五、字符緩存設置

根據需要設置字符的緩存策略。

默認 tomcat.util.buf.StringCache.byte.enabled=true 設置,其他的被註釋了。


六、小結

Tomcat可以通過catalina.properties的server和shared設置,爲webapp提供公用類庫。

使一些公用的、不需要與webapp放在一起的設置信息單獨保存,在更新webapp的war的時候無需更改webapp的設置。



發佈了95 篇原創文章 · 獲贊 19 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章