用案例探究java类加载器---类隔离

在Java项目中,由于不同工作插件可能依赖不同版本的jar包,导致版本冲突。解决方法包括使用多模块构建,每个模块对应一个插件及其依赖。在父项目中,通过反射来调用不同插件的功能,避免直接依赖导致的版本问题。然而,这样做仍然面临在同一个模块内无法同时引入不同版本jar包的挑战。
摘要由CSDN通过智能技术生成

场景:使用不同的工作插件应对不同的工作内容,工作插件之间可能存在同种但是不同版本的jar包。我们需要如何做?(ps:底层理论知识在后面)

一:尝试在一个模块里面引入不同jar包

这里导入一个jar的两个版本,但是只有一个被导入进来了,所以说在一个模块(一个pom文件)中是无法使用多版本的jar包。所以我们需要使用多模块(多个pom文件)。

 

二:多模块一个类加载器

建立一个父类项目,里面两个子项目,每个子项目相当于一个插件。

pluginCore添加对pluginOne和PluginTwo的依赖,但是还是需要导入aJar,不然会报classNotDef的错。如果导入aJar,就会发生上面一样的情况,没办法在pluginCore的pom文件中导入两个版本的aJar。

不能直接依赖,如果拿到插件实例,想调用插件功能,那么只能反射出来对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值