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

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

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

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

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

相关推荐
Victor3563 分钟前
MongoDB(34)什么是聚合管道(Aggregation Pipeline)?
后端
Victor3565 分钟前
MongoDB(35)聚合操作的常见阶段有哪些?
后端
JAVA学习通14 分钟前
InnoDB 存储引擎
java·数据库·mysql
Kim Jackson24 分钟前
我的世界Java版1.21.4的Fabric模组开发教程(二十三)创建生物(下)实体在游戏中的实现(1)
java·游戏·fabric
温柔一只鬼.24 分钟前
GUI学习——day2
java·开发语言·学习
东离与糖宝26 分钟前
Spring Boot 3 + Qwen 3.5 最佳实践:从接口调用到 RAG 向量检索一站式开发
java·人工智能
追逐时光者35 分钟前
2026年全面且实用的 Visual Studio 插件推荐,开发效率提升利器!
后端·visual studio
零雲1 小时前
java面试:Spring是如何解决循环依赖问题的
java·spring·面试
yuhaiqiang1 小时前
太牛了🐂,再也没有被AI 骗过,自从用了这个外挂 !必须装上
javascript·人工智能·后端
饕餮争锋1 小时前
Java泛型介绍
java·开发语言