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

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

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

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

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

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