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

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

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

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

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

相关推荐
小研说技术1 分钟前
Spring AI实现rag流程(简易版)
java·后端
亓才孓6 分钟前
【本地项目引用外部库的类,想修改字段遇到的请缓存的问题】
java·maven
小林敲代码778816 分钟前
记录一下IDEA中很多变量变色的方案
java·开发语言·spring boot·idea
Nturmoils17 分钟前
自增主键别只会 auto_increment,先把值从哪来讲清楚
数据库·后端
南知意-20 分钟前
IDEA 2026.1最新版安装教程
java·ide·intellij-idea·idea安装·idea激活
Slice_cy28 分钟前
基于node实现服务端内核引擎
前端·后端
星子落怀aa37 分钟前
Java 反复报错?Gemini助力修复
java
半夜修仙40 分钟前
RabbitMQ中如何保证消息的可靠性传输
java·分布式·中间件·rabbitmq·github·java-rabbitmq
Flittly42 分钟前
【AgentScope Java新手村系列】(3)工具系统
java·spring boot·spring
吴声子夜歌44 分钟前
Java——多线程编程技巧
java·多线程