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

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

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

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

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

相关推荐
Andya几秒前
SpringBoot | 构建客户树及其关联关系的设计思路和实践Demo
后端
居然是阿宋2 分钟前
Kotlin函数体详解:表达式函数体 vs 代码块函数体——使用场景与最佳实践
java·开发语言·kotlin
GetcharZp2 分钟前
FileBrowser:用浏览器轻松管理服务器文件,简洁又强大
后端·go
小钊(求职中)5 分钟前
Java后端开发面试题(含答案)
java·开发语言·后端·面试
这里有鱼汤5 分钟前
🎨 Matplotlib十大高级绘图技巧,学会了升职加薪(不骗你)
后端·python
lllsure7 分钟前
JWT令牌
java
uhakadotcom15 分钟前
轻松理解vLLM:大语言模型推理的高效利器与实用示例
后端·面试·github
极客杰尼22 分钟前
5分钟搞定产品播客音频,MCP我服了...
后端
北漂老男孩37 分钟前
Spring Boot 配置处理器深度解析:元数据驱动的工程实践
java·spring boot·后端
我在北国不背锅38 分钟前
JDBC插件式数据库连接器
java·数据库·jdbc