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

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

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

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

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

相关推荐
苍何11 小时前
让 WorkBuddy 操控浏览器,干活有点猛啊1
后端
海的透彻11 小时前
dockerfile如何快速构建容器(java服务)
java·开发语言
IT_陈寒11 小时前
当Java的hashCode遇上Lombok,我的缓存被全清了
前端·人工智能·后端
code2cat11 小时前
Java工具篇之Gradle:用任务图组织构建与交付
java·开发语言·单元测试·gradle
XW12 小时前
常用提示词(Prompt)框架总结
后端
ServBay12 小时前
DeepSeek 再次崩了,DeepSeek V5正在路上?
后端·deepseek
后台模板学习12 小时前
大模型 Prompt 工程在电商订单系统中的踩坑记录
java·python·prompt
w_zero_one12 小时前
算法--构造
java·数据结构·算法
SL_staff12 小时前
制造业订单交付崩盘?用四层协同框架重建交付可信度(技术实践)
java·产品·全栈
IT规划师13 小时前
编程术语中的同步与异步:从"等不等"到工程取舍
后端·面试