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

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

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

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

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

相关推荐
SakitamaX13 分钟前
Tomcat介绍与实验
java·tomcat
Y0011123624 分钟前
Day24—IO流-2
java·开发语言
Java编程爱好者25 分钟前
Spring Boot + JPackage:构建独立安装包!
后端
CS生28 分钟前
Rust环境准备
开发语言·后端·rust
神奇小汤圆40 分钟前
效率拉爆:IntelliJ IDEA 中的这几款 AI 编程插件你都用过吗?
后端
历程里程碑1 小时前
普通数组---合并区间
java·大数据·数据结构·算法·leetcode·elasticsearch·搜索引擎
2301_780669861 小时前
MyBatis(配置,增删改查,注解与XML两种开发方式)、SpringBoot配置文件(yml简化properties)
xml·spring boot·mybatis·javaweb
神奇小汤圆1 小时前
都2026年了,还在用Xshell?试试这几款现代化的终端工具吧!
后端