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

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

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

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

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

相关推荐
IT_陈寒2 分钟前
Java 8的stream让我debug了一整天,气笑了
前端·人工智能·后端
TunerT_TQ4 分钟前
企业智能体工程体系v1.1|企业智能体工程卷 · 第5期· 数据飞轮——用观察—分析—计划—执行持续改进
java·运维·网络·#agent工程化·#企业智能体·#多智能体系统·#数据飞轮
小当家.1058 分钟前
工具并行调用原理与实现:CompletableFuture 实战
java·agent·线程池·工具·并行
yushikong35 分钟前
关于rust开发ch32x033f8p6的一些记录
开发语言·后端·rust
wangjialelele39 分钟前
Spring Cloud 全体系学习笔记(REST、Nacos、Feign、Gateway)
java·spring boot·笔记·学习·spring·spring cloud·gateway
yk 坤帝1 小时前
用Python算清你的“买时间“账
java·服务器·python
weixin_BYSJ19871 小时前
springboot医疗信息管理系统---附源码17465
java·javascript·spring boot·python·django·flask·php
xqqxqxxq1 小时前
吃透 Spring 高频注解(包含SpringMVC Spring Boot)
java·spring boot·spring
都叫我大帅哥1 小时前
Embabel 1.0 Agent Framework 完全指南:从入门到生产级实践
java
程序员爱钓鱼1 小时前
Rust Borrow借用详解:不转移所有权访问数据
后端·面试·rust