SpringBoot自定义类加载器,项目打包成jar包后,加载不到Class

项目涉及需要留接口给第三方进行功能扩展,第三方实现统一的扩展接口后将扩展代码上传到了数据库,再执行扩展方法的时候再将扩展类加载到jvm内存。因为是加载项目外的class类,所以通过实现自定义类加载器继承了ClassLoader通过defineClass方法去实现外部类的加载。但是在通过spring-boot-maven-plugin插件打包后jar包内目录结构变化,项目中存在的类(如项目中统一的扩展类接口,依赖类等)都无法通过自定义类加载器加载到。

通过spring-boot-maven-plugin插件打包后jar包内目录结构

通过maven-jar-plugin插件打包后jar包内目录结构

解决方法 :不改变打包方式,通过继承线程上下文类加载器的方式,可以解决该问题

相关推荐
鱼宵2 分钟前
Spring AI RAG 问答助手:回答带引用,AI 不再睁眼说瞎话
java·人工智能·spring·springai
rannn_1116 分钟前
项目缓存实战:热点 Key 击穿、缓存穿透与多级缓存架构
java·缓存·架构
掘金者阿豪10 分钟前
数据集成软件不能只看“同步成功”:聊聊金仓 KFS 和订单数据同步这件事
前端·后端
我的div丢了肿么办11 分钟前
go语言通过反射来操作结构体中的数据
后端·go
imDwAaY16 分钟前
进程之间如何“对话”?一篇讲清六种进程间通信方式
后端·操作系统
用户0942485680317 分钟前
第37章:JVM极端场景调优与生产故障复盘方法论
java·jvm
知守观17 分钟前
同事的 SNAPSHOT 更新了,我三天后才拉到:Maven 更新检查被 _remote.repositories 静默跳过
java·后端·maven
Wang's Blog17 分钟前
Java 项目实战: 交友项目 - 项目模块划分与依赖关系
java·开发语言·交友
努力进修18 分钟前
时序数据长期承载难题:从压缩、批量写入到数据组织优化
java·开发语言·数据库
斑鸠喳喳21 分钟前
交换器 Exchanger
后端