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

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

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

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

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

相关推荐
one_love_zfl8 分钟前
java面试-微服务组件篇
java·微服务·面试
一只大袋鼠11 分钟前
Java进阶:CGLIB动态代理解析
java·开发语言
ailab17 分钟前
研发人员如何写好 AI 提示词:从“问问题”到“驱动研发闭环”
后端
环流_25 分钟前
HTTP 协议的基本格式
java·网络协议·http
爱滑雪的码农26 分钟前
Java基础十三:Java中的继承、重写(Override)与重载(Overload)详解
java·开发语言
ltl26 分钟前
【大模型基础设施工程】25:大模型基础设施未来
后端
ltl29 分钟前
【大模型基础设施工程】二十四:成本、合规与安全
后端
【 】42329 分钟前
C++&STL(Standard Template Library,标准模板库)
java·开发语言·c++
茉莉玫瑰花茶30 分钟前
LangChain 核心组件 [ 2 ]
java·数据库·langchain
吴爃35 分钟前
Spring Boot 项目在 K8S 中的打包、部署与运维发布实践
运维·spring boot·kubernetes