zoukankan      html  css  js  c++  java
  • 如何在tomcat启动时加载一个类

    Tomcat启动时classloader加载顺序
    Tomcat的class加载的优先顺序一览  
    1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。  
    2.环境变量CLASSPATH中的jar和class文件。  
    3.$CATALINA_HOME/common/classes下的class文件。  
    4.$CATALINA_HOME/commons/endorsed下的jar文件。  
    5.$CATALINA_HOME/commons/i18n下的jar文件。  
    6.$CATALINA_HOME/common/lib   下的jar文件。  
    (JDBC驱动之类的jar文件可以放在这里,这样就可以避免在server.xml配置好数据源却出现找不到JDBC   Driver的情况。)  
    7.$CATALINA_HOME/server/classes下的class文件。  
    8.$CATALINA_HOME/server/lib/下的jar文件。  
    9.$CATALINA_BASE/shared/classes   下的class文件。  
    10.$CATALINA_BASE/shared/lib下的jar文件。  
    11.各自具体的webapp   /WEB-INF/classes下的class文件。  
    12.各自具体的webapp   /WEB-INF/lib下的jar文件。  
    class的搜寻顺序如下:  
    -------------  
    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/common/classes    
    $CATALINA_HOME/common/endorsed/*.jar    
    $CATALINA_HOME/common/i18n/*.jar    
    $CATALINA_HOME/common/lib/*.jar    
    $CATALINA_BASE/shared/classes    
    $CATALINA_BASE/shared/lib/*.jar    
    --------------  
    因此放在不同webapp里的class文件,会被classloader加载成不同的实例。  
    例如假设下面两个不同内容的class。分别放在不同的webapp的class目录下。  
    package   com.lizongbo;  
    public   class   TestClass   {  
          private   String   NAME="lizongbo";  
    }  
    package   com.lizongbo;  
    public   class   TestClass   {  
          private   String   NAME="li_zongbo";  
    }

  • 相关阅读:
    前端的UI设计与交互之布局篇
    前端的UI设计与交互之文案篇
    前端的UI设计与交互之字体篇
    前端的UI设计与交互之图标篇
    前端的UI设计与交互之色彩篇
    Linux学习(一)
    PHP正则表达式基本语法
    PHP正则表达式函数学习
    PHP发送HTTP请求的几种方式
    PHP实现队列
  • 原文地址:https://www.cnblogs.com/aquarius-bear/p/3706042.html
Copyright © 2011-2022 走看看