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

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

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

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

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

相关推荐
java小白小8 分钟前
Guava Cache 本地缓存
java
星栈10 分钟前
Rust + DDD 三层架构:没有 Spring、没有 DI 容器,解耦能力一点不少
后端·github
梦梦代码精11 分钟前
LikeShop 二次开发扩展能力白皮书——面向业务增长的可扩展电商架构实践
java·架构·github
极客先躯13 分钟前
高级java每日一道面试题-2025年12月05日-实战篇[Dockerj]-Docker 安装后的默认存储路径是什么?如何修改?
java·docker·默认存储路径在不同系统上的区别·linux overlay2·修改存储路径的理论方法·修改流程中的关键理论点
正在走向自律13 分钟前
KingbaseES 命令行工具完全指南:ksql 常用操作与技巧
后端
祁_z17 分钟前
LangSmith 实操指南「Agent 可观测性系统」
java·服务器
小雅痞31 分钟前
[Java][Leetcode hard] 76. 最小覆盖子串
java·算法·leetcode
MegaDataFlowers1 小时前
代码自动生成
java
dllxhcjla1 小时前
Spring全套
java·后端·spring
@杰克成1 小时前
Java学习24
java·学习·idea