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

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

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

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

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

相关推荐
MrSYJ1 分钟前
Netty异常传播机制
java·服务器·netty
鱼人3 分钟前
内存泄漏:隐形杀手与防御指南
后端
武子康4 分钟前
大数据-250 离线数仓 - 电商分析 Hive 数仓 ADS 层订单分析实战:全国/大区/城市分类汇总与 Airflow 调度
大数据·后端·apache hive
于先生吖9 分钟前
基于 Java 开发智慧社区系统:跑腿 + 家政 + 本地生活服务实战教程
java·开发语言·生活
魑魅魍魉都是鬼10 分钟前
JAVA面向对象设计的五大原则
java
小箌11 分钟前
springboot_01
java·spring boot·后端
sunwenjian88616 分钟前
Spring Cloud gateway 路由规则
java
panzer_maus16 分钟前
死锁的产生与解决
java·开发语言
asom2219 分钟前
MVC vs DDD
java·mvc·ddd
凯子坚持 c22 分钟前
基于C++构建DeepSeek大模型推理SDK:从架构设计到工程落地
java·数据库·c++