如何在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";  

}

如何在tomcat启动时加载一个类,布布扣,bubuko.com

时间: 2024-10-12 21:33:58

如何在tomcat启动时加载一个类的相关文章

Tomcat(一):Tomcat启动时加载web.xml

server.xml配置文件样例: <?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional inf

tomcat启动时加载配置文件 报错

原因:  @serice("customerService")  和@Repository(value="customerDao")       解决: 直接@serice 和 @Repository严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.

Servlet在启动时加载的tomcat源码(原创)

tomcat 8.0.36 知识点: 通过配置loadOnStartup可以设置Servlet是否在Tomcat启动时加载,以及按值大小进行有序加载,其最小有效值为0,最大有效值为Integer.MAX_VALUE. Jsp Servlet的类是org.apache.jasper.servlet.JspServlet. Jsp Servlet是强制性启动时加载,其loadOnStartup的默认值,或其值是失效值时,将使用最大有效值. 通过配置Context或Host的failCtxIfServ

如何在tomcat启动时自动加载一个类

有时候在开发web应用的时候,需要tomcat启动后自动加载一个用户的类,执行一些初始化方法,如从数据库中加载业务字典到内存中,因此需要在tomcat启动时就自动加载一个类,或运行一个类的方法. 可以采用在WEB-INF/web.xml中添加一个监听程序(ServletContextListener配置项),步骤如下:1) 增加一个监听程序 MyServletContextListener.java, 实现javax.servlet.ServletContextListener接口 packag

tomcat启动时自动加载一个类&#160;MyServletContextListener

目的: 我们知道在tomcat启动后,需要页面请求进行驱动来执行操作接而响应.我们希望在tomcat启动的时候能够自动运行一个后台线程,以处理我们需要的一些操作.因此需要tomcat启动时就自动加载一个类,或运行一个类的方法. 可以采用ServletContextListener. 方法: (1)编写一个监听类,实现javax.servlet.ServletContextListener接口. 1 import javax.servlet.ServletContextEvent; 2 impor

ElasticSearch 启动时加载 Analyzer 源码分析

ElasticSearch 启动时加载 Analyzer 源码分析 本文介绍 ElasticSearch启动时如何创建.加载Analyzer,主要的参考资料是Lucene中关于Analyzer官方文档介绍.ElasticSearch6.3.2源码中相关类:AnalysisModule.AnalysisPlugin.AnalyzerProvider.各种Tokenizer类和它们对应的TokenizerFactory.另外还参考了一个具体的基于ElasticSearch采用HanLP进行中文分词的

Tomcat启动后加载两次servlet的问题

前提: 1.存在某个应用:hello 2.该应用存放路径:D:\apache-tomcat-5.5.17\webapps\hello 3.Tomcat的server.xml部分配置信息如下: Java代码 ...  <Context path="" reloadable="true" docBase="hello"/>  ...  ...  <Context path="" reloadable="

设置程序启动时加载的storyboard

这个设置表明:程序启动时会加载Main.storyboard

spring项目中监听器作用-ContextLoaderListener(项目启动时,加载一些东西到缓存中)

作用:在启动Web容器时,自动装配Spring applicationContext.xml的配置信息. 因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法.在ContextLoaderListener中关联了ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成 pring在web下的入口在配置文件web.xml的监听器中 <listener> <listener-cl