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

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

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

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

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

相关推荐
彭于晏Yan4 分钟前
LangChain4j实战三:图像模型
java·spring boot·后端·langchain
无尽的沉默10 分钟前
使用Thymeleaf配置国际化页面(语言切换)
前端·spring boot
SimonKing18 分钟前
跨越数据孤岛!SpringBoot使用JDBC调用Calcite联邦查询实战
java·后端·程序员
Java编程爱好者25 分钟前
金融级数据库架构实战:MySQL Router + MGR 深度指南
后端
好家伙VCC26 分钟前
# 发散创新:基于Python的TTS语音合成实战与优化策略 在人工智能加速落地的今天,**文本转
java·开发语言·人工智能·python
Java编程爱好者30 分钟前
Java后端开发面试题总结(全网最全、最细、附答案)
后端
等D春C夏X43 分钟前
最终版C++11/14/17学习大纲(精准核对42条条款)
java·开发语言
Cg136269159741 小时前
HTML标题标签
java
Java水解1 小时前
Spring应用事件机制实践
后端·spring
my_styles1 小时前
window系统安装/配置Nginx
服务器·前端·spring boot·nginx