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

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

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

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

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

相关推荐
二哈赛车手4 分钟前
新人笔记---最终版智能体图片分析完整方案,包括一些总结于经验,以及各种优化点讲解
java·笔记·spring·ai·springboot
泡^泡40 分钟前
Spring AI简单高仿DeepSeek问答页面
java·人工智能·spring
带刺的坐椅1 小时前
Solon v4.0 正式发布,高考记忆版
java·ai·solon·flow·solon-ai
ServBay2 小时前
别再用初级写法写Rust了,8个写法你值得拥有
后端·rust
JAVA面经实录9172 小时前
操作系统(面试全覆盖)
java·计算机网络·面试
jingling5553 小时前
go | 环境安装和快速入门
开发语言·后端·golang
编程的一拳超人3 小时前
Maven 国内高速镜像推荐(按速度排序)
java·maven
Darren2453 小时前
流程步骤模板 - @StepStatus 注解方案
后端
小闹5493 小时前
Claude Code 给自己接了一部飞书,从此不用守在工位等它
后端·claude