`
zhanlanlubai921
  • 浏览: 2524 次
  • 性别: 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的类加载器,根本加载不到资源。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics