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

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

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

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

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

相关推荐
星火开发设计2 分钟前
C++ 运算符全解析:算术、关系、逻辑与位运算
java·开发语言·c++·学习·位运算·知识·操作符
2401_882351528 分钟前
Flutter for OpenHarmony 商城App实战 - 购物车实现
java·flutter·dubbo
遇印记15 分钟前
蓝桥java求最大公约数
java·开发语言
ONExiaobaijs16 分钟前
【无标题】
java·开发语言·spring·maven·程序员创富
符哥200825 分钟前
Mybatis和Mybatis-plus区别
java·开发语言·mybatis
lkbhua莱克瓦2432 分钟前
JavaWeb技术概述
java·javaweb·web
爬山算法33 分钟前
Hibernate(46) Hibernate的配置文件如何加载?
java·后端·hibernate
风景的人生35 分钟前
springboot项目用maven插件打包时候报错
java·spring boot·maven
二哈喇子!35 分钟前
基于SSM框架的网上商城购物系统的设计与实现(开源项目——实现CRUD功能整体流程超详细)
java·spring·mybatis·ssm
容沁风38 分钟前
pycharm启动报错incompatible with Text-specific LCD
java·pycharm