`
zhanlanlubai921
  • 浏览: 2459 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Tomcat用classloader热加载配置出现缓存问题

阅读更多
tomcat中从current thead中获取的class加载器为tomcat提供的WebappClassLoader,此classloader提供的getResourceAsStream方法会先根据资源路径到其已加载资源中查找,若找到则直接返回。否则由classloader加载后返回.
因此资源文件更新以后,classloader不能侦测到,返回的输入流对应的资源文件为第一次加载的文件;
稍做改变可避免此问题:
先调用classloader的:public URL getResource(String name)
根据返回的URL再获取输入流,即避免了缓存的问题; 



另外:使用system class loader 和使用类的class loader 加载资源的注意事项:
尽量使用类的class loader 否则放在tomcat等容器中时,用system的类加载器,根本加载不到资源。
分享到:
评论

相关推荐

    Tomcat 5.0.18 ClassLoader source code insight

    Tomcat还会处理类的重命名、覆盖和热更新等问题,这些都是通过ClassLoader实现的。 在实际开发中,了解这些细节可以帮助我们更好地理解和解决一些常见的问题,如类冲突、类加载异常等。同时,对于性能优化,如减少...

    tomcat 类加载机制 —— ClassLoader

    《Tomcat类加载机制——ClassLoader详解》 在Java Web开发中,Tomcat作为最常用的Servlet容器,其类加载机制对于理解和优化应用性能至关重要。本文将深入探讨Tomcat的ClassLoader是如何工作的,以及它如何影响到...

    使用classloader动态加载Class

    例如,插件系统、热更新等场景广泛使用了动态加载技术。 4. **类加载策略**:根据实际需求,可以设计不同的类加载策略。比如,基于URL的ClassLoader可以从特定的网络位置或文件系统加载类;再比如,基于命名空间的...

    ClassLoader类加载机制和原理详解

    在Java编程语言中,ClassLoader是核心组件之一,它负责加载类到JVM(Java虚拟机)中执行。本文将深入探讨ClassLoader的工作原理...同时,掌握双亲委派模型可以帮助解决类加载过程中的问题,避免出现类加载混乱的情况。

    Tomcat加载顺序

    ### Tomcat加载顺序详解 Apache Tomcat作为一款广泛使用的开源Servlet容器,其类加载机制是理解和维护基于Tomcat的应用...开发人员在部署和调试应用时,应充分了解这一机制,以便于解决可能出现的类加载冲突等问题。

    java类加载器-tomcat中的类加载器

    Tomcat,作为广泛使用的Java Servlet容器,它自定义了一套类加载机制,以满足Web应用程序的特殊需求。下面我们将深入探讨Java类加载器以及Tomcat中的类加载器。 在Java中,类加载器主要分为三个层次:Bootstrap ...

    Tomcat研究之ClassLoader.pdf

    ### Tomcat中的ClassLoader详解 #### 一、引言 在深入了解Tomcat的工作原理时,一个重要的组成部分就是其...理解这些概念有助于开发者更好地管理部署在Tomcat上的Web应用程序,并解决可能出现的类加载冲突等问题。

    【图解版】深入分析ClassLoader类加载工作机制

    【图解版】深入分析ClassLoader类加载工作机制,从原理到JVM的装载过程,详情分析了ClassLoader加载类以及自定义类加载器的过程,不可用于商业用途,如有版权问题,请联系删除!

    3-7Tomcat中自定义类加载器的使用与源码实现(1).mp4

    3-7Tomcat中自定义类加载器的使用与源码实现(1).mp4

    tomcat类加载器

    4. Common ClassLoader:在Tomcat中,它是所有Web应用共享的类加载器,用于加载`common.loader`配置项指定的类路径。 5. WebApp ClassLoader:每个Web应用有自己的类加载器,它加载应用的`WEB-INF/classes`和`WEB-...

    springboot+java类热加载

    例如,`MemoryClassLoader.java`可能就是一个自定义类加载器的实现,它可以在内存中动态加载或更新类。 **JarinJAR**是一种打包技术,它可以将多个JAR文件打包成一个大的JAR文件。在热加载场景下,JarinJAR使得在...

    ClassLoader类加载器

    在Java编程语言中,ClassLoader是一个至关重要的组成部分,它负责加载类到JVM(Java虚拟机)中。了解和掌握ClassLoader的工作原理以及如何自定义ClassLoader对于深入理解Java应用程序的运行机制非常有帮助。以下是对...

    ClassLoader动态加载dex

    在Android系统中,ClassLoader是Java类加载器的一种实现,它负责加载应用的代码资源,包括类、库等。当我们谈论"ClassLoader动态加载dex"时,实际上是指在Android应用程序运行时,通过自定义的ClassLoader来动态加载...

    Tomcat启动时类加载顺序

    Tomcat通过自定义的类加载器实现了特定的类加载顺序,以确保能够正确处理不同来源的类文件,避免类的重复加载和类版本冲突问题。以下是Tomcat启动过程中类加载的具体顺序: #### 三、类加载顺序详述 1. **Bootstrap...

Global site tag (gtag.js) - Google Analytics