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

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

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

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

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

相关推荐
Darling噜啦啦几秒前
# MySQL + Milvus = PostgreSQL?一张表搞定 AI Agent 的长时记忆(附完整代码)
后端·postgresql·orm
用户713874229001 分钟前
在 .NET 中使用 AWS Secrets Manager:Config 与 Client 详解
后端
福大大架构师每日一题2 分钟前
2026-10-16:交替数列的最大元素。用go语言,给定三个整数 n、s、m。现在要构造一个包含 n 个整数的序列,其中第一个数必须等于 s。序列中相邻数字的
后端
yunwei372 分钟前
eBPF 入门实践教程:BPF Token,安全的委托式权限与程序加载
linux·后端·性能优化
136096757235 分钟前
旧 SQL 在新 PG 上能不能跑
后端
SamDeepThinking6 分钟前
配货单发货数为空告警误报治理:写表延迟复核方案
java·后端·架构
知守观7 分钟前
mirrorOf= 把私服请求拦去了公网镜像:本地能跑,CI 上内部包 404 排查
后端·ci/cd·maven
ly768913 分钟前
读懂 PostgreSQL 执行计划:从 EXPLAIN 输出定位 Spring Boot 慢 SQL 的代价估算偏差
spring boot·sql·postgresql·执行计划·explain analyze·慢sql优化
万物智能13 分钟前
鸿蒙UART总线怎么用?—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
后端
\光辉岁月/14 分钟前
16.JavaSE-反射
java·反射