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

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

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

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

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

相关推荐
Mandy的名字被占用了8 小时前
晨风AI+知识付费系统|学练考全闭环,重构教育变现新模式
人工智能·后端
why技术8 小时前
分享一套我一直在使用的 AICoding 组合拳,小而美的典范。
前端·后端·ai编程
架构源启9 小时前
文档接入与智能解析:基于 Spring AI 1.1.x 的多格式解析、版面理解与结构化抽取
java·人工智能·spring
GetcharZp9 小时前
SRS实战:一个开源流媒体服务,支持6大协议,80ms低延迟,轻松搭建自己的直播平台
后端
Csvn10 小时前
📊 SQL 入门 Day 7:子查询 — 查询中的查询
后端·sql
大模型码小白13 小时前
JAVA 集合框架进阶:List 与 Set 的深度解析与实战
java·开发语言·人工智能·windows·语言模型·list·ai编程
IT_陈寒13 小时前
为什么我的JavaScript异步代码总是不按顺序执行?
前端·人工智能·后端
星栈13 小时前
Node 框架怎么选?Express、Koa、Egg、NestJS 场景化选型指南
后端·node.js
名字还没想好☜13 小时前
Go 的 time.Ticker 陷阱:定时任务里被忽略的内存泄漏与正确关闭
java·数据库·golang·go·定时器
锋行天下13 小时前
打造企业内部知识库系统RAG全栈项目
前端·后端·架构