码迷,mamicode.com
首页 > 其他好文 > 详细

类加载器隔离一般方式(yet)

时间:2020-01-10 10:48:18      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:source   手动   反射   资源   sha   sse   tom   加载   tty   

配合线程的类加载器设置及自定义类加载打破双亲委派,将子项目jar包及其依赖jar包置于tomcat类加载器不可见处(resource中),手动以自定义类加载加载,避免子项目的jar包与母项目冲突,0侵入母项目;使用netty构建低侵入的httpserver

 

问题:

主项目:tomcat,巨多jar包

  依赖xxx-1.1.jar

  同时依赖子项目:sub.jar

    中又依赖依赖xxx-1.2.jar

打包时搞在一起进lib目录,冲突

 

解决方案,分开打包,子项目先打sub.jar,xxx-1.2.jar一同打进(assembly、shade)或分开打(jar)

主项目

  依赖xxx-1.1.jar

  在resource引入sub.jar、xxx-1.2.jar,tomcat加载不到,也不会加载,会以资源文件对待

  依赖子项目代理

    某方法中自定义类加载器加载sub.jar、xxx-1.2.jar

    启动新线程,设置其类加载器为自定义加载器,应对spring会取当前线程类加载器

    在线程中反射执行sub.jar的主方法,启动netty server

    

类加载器隔离一般方式(yet)

标签:source   手动   反射   资源   sha   sse   tom   加载   tty   

原文地址:https://www.cnblogs.com/silyvin/p/12174761.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!