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


    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的设置。

    备注:

    Tomcat 遵循的规范如下:

    • EL 2.2 API.
    • JSP 2.2 API.
    • Servlet 3.0 API.

    很多的配置文件的规则都在这几个规范中定义。

     

  • 相关阅读:
    自己总结的Java归并排序代码
    SpringDataJpa
    多态
    向上转型向下转型
    python面向对象装饰器
    Apache
    git
    μWSGI
    虚拟环境
    软件仓库(持续更新中)
  • 原文地址:https://www.cnblogs.com/ThinkVenus/p/8047658.html
Copyright © 2020-2023  润新知