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

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

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

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

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

相关推荐
风舞雪凌月2 分钟前
【趣谈】移动系统和桌面系统编程语言思考
java·c语言·c++·python·学习·objective-c·swift
清汤饺子8 分钟前
OpenSpec:让 AI 编程从"开盲盒"到"先签字再干活"
前端·javascript·后端
RATi GORI10 分钟前
Spring Boot 整合 Keycloak
java·spring boot·后端
吴梓穆11 分钟前
UE5 c++ 模板函数
java·c++·ue5
她说..12 分钟前
Spring单例Bean线程安全问题 深度解析
java·后端·安全·spring·springboot
Seven9713 分钟前
MVC快速入门
java
吴梓穆15 分钟前
UE5 c++ 暴露变量和方法给蓝图
java·c++·ue5
风向决定发型丶17 分钟前
Java 线程池 vs Go GMP
java·开发语言·golang
zs宝来了24 分钟前
Spring Boot 内嵌 Tomcat 原理:Tomcat ServletWebServerFactory 源码解析
spring boot·tomcat·内嵌容器·webserverfactory
zzb158029 分钟前
Agent案例-智能文档问答助手
java·人工智能·笔记·python