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

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

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

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

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

相关推荐
XPoet35 分钟前
AI 编程工程化:Skill——给你的 AI 员工装上技能包
前端·后端·ai编程
阿珍爱上了阿强,在一个有星星的夜晚43 分钟前
node后端页面性能监测分析
java·学习方法
Java程序之猿1 小时前
SpringBoot + camel+IBM MQ实现消息队列处理
java·spring boot·mybatis
码事漫谈1 小时前
从“功能实现”到“深度优化”:金仓数据库连接条件下推技术的演进之路
后端
码事漫谈1 小时前
数据库查询优化中的谓词下推策略与成本感知优化实践
后端
z_鑫1 小时前
SpringCloud FeignClient 中 Bean 重复注册冲突解决方案解析
java·spring boot·spring cloud
Amour恋空1 小时前
SpringBoot+Lombok+Logback实现日志
spring boot·后端·logback
廋到被风吹走1 小时前
【LangChain4j】特点功能及使用场景
后端·python·flask
孫治AllenSun2 小时前
【线程池】优化等待队列和拒绝策略
java·spring boot·spring cloud