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

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

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

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

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

相关推荐
程序员阿明2 分钟前
spring boot4集成spring AI 2
人工智能·spring boot·spring
kakawzw5 分钟前
Netty源码笔记
java·服务器·后端
明月_清风5 分钟前
算法时间复杂度:给小白的一堂"算快慢"课
后端·算法
zhuodedao8 分钟前
Spring AI + MCP 文件工具未调用问题复盘:为什么初始化成功却没有写入文件?
java·debug·agent·springai·mcp
Java小白笔记20 分钟前
Java中大数据实时归集与指标汇总方案
java·大数据·开发语言
Nturmoils21 分钟前
内网穿透原来这么简单:Natapp 从注册到公网访问完整教程
后端
随遇而安zx21 分钟前
【地基篇】---Java 8 JVM 知识大纲
java·开发语言·jvm
雾隐隐o23 分钟前
Docker 镜像归档与容器管理
java·docker·eureka
Meta3927 分钟前
Java八股文之Spring Boot 中解决 MySQL 和 Elasticsearch (ES) 的数据一致性问题
java·spring boot·mysql
寻求出路的程序媛33 分钟前
分布式 & 高性能 & 高可用 体系、学习重点、面试点
分布式·后端·面试·性能优化