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

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

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

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

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

相关推荐
2601_967338717 分钟前
尚硅谷2026尚硅谷Java全栈+Python智能体教程
java·人工智能
摇滚侠17 分钟前
《SpringBoot 3:入门与应用实战》第 9 章 使用 WebMvc 开发进阶 阅读笔记 24
spring boot·笔记·后端
摇滚侠25 分钟前
《SpringBoot 3:入门与应用实战》第 9 章 使用 WebMvc 开发应用 阅读笔记 22
javascript·spring boot·笔记
元界metalite30 分钟前
SpringBoot开发企业后台-操作日志记录的最佳实践
后端
用户2986985301430 分钟前
PDF 转纯文本(TXT)免费攻略:轻松提取文字内容
人工智能·后端·c#
程序边界31 分钟前
从RAG落地到MCP实战:向量数据库融合架构的工程化体验
后端
孙克旭_32 分钟前
单链表进阶实操:5 道常考面试题详细解析【Java 实现】
java·开发语言·数据结构·单链表
2601_9619017038 分钟前
SpringCloud2023集成Nacos2.4.3
java
玄昌盛不会编程39 分钟前
LeetCode——2091. 从数组中移除最大值和最小值
java·算法·leetcode
Rain的Java大神之路42 分钟前
如何保证接口幂等
java·经验分享·后端·面试·架构