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

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

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

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

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

相关推荐
Jack_hrx31 分钟前
全面教程:Nacos 2.3.2 启用鉴权与 MySQL 数据存储配置
java·nacos·nacos鉴权·nacos配置mysql
一决威严-雪雪1 小时前
springboot整合gateway
java·开发语言
bboysky452 小时前
golang 的 panic
开发语言·后端·golang
小诸葛的博客2 小时前
Go oom分析(一)——使用pprof线上分析
开发语言·后端·golang
苹果醋32 小时前
Golang的并发编程异常处理
运维·vue.js·spring boot·nginx·课程设计
SyntaxSage2 小时前
Lua语言的软件开发工具
开发语言·后端·golang
橘猫云计算机设计2 小时前
基于Django高校疫情防控管理系统(源码+lw+部署文档+讲解),源码可白嫖!
后端·python·django
凉秋girl2 小时前
Java基础概念
java·开发语言
ChoSeitaku2 小时前
No.1|Godot|俄罗斯方块复刻|棋盘和初始方块的设置
java·前端·godot
怎么名字都重复3 小时前
1.两数之和--力扣
java·数据结构·算法·leetcode·软件工程