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

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

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

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

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

相关推荐
琪露诺大湿2 分钟前
VeloQueue-测试报告
java·开发语言·消息队列·单元测试·项目·测试报告
茅盾体3 分钟前
Electron图标相关
java·前端·electron
XS0301065 分钟前
Java 基础(十一)反射
java·开发语言
凤山老林5 分钟前
Spring Boot 集成 TigerGraph 实现图谱分析技术方案
java·spring boot·后端·图谱分析·tigergraph
t***5447 分钟前
Dev-C++中使用Clang调试有哪些常见错误
java·开发语言·c++
xuhaoyu_cpp_java8 分钟前
Mybatis学习(四)
java·经验分享·笔记·学习·mybatis
Victor3569 分钟前
MongoDB(106)什么是MongoDB Compass?
后端
.生产的驴10 分钟前
SpringBoot 大文件分片上传 文件切片、断点续传与性能优化 切片技术与优化方案 文件高效上传
java·服务器·spring boot·后端·spring·spring cloud·状态模式
Victor35613 分钟前
MongoDB(105)如何解决MongoDB中的内存泄漏问题?
后端
吴文周9 小时前
告别重复劳动:一套插件让 AI 替你写代码、修Bug、做测试、上生产
前端·后端·ai编程