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

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

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

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

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

相关推荐
无籽西瓜a2 分钟前
MD5算法原理、适用场景
java·后端·算法·哈希算法·md5
Ares-Wang3 分钟前
flask 》》内置HTMLParser
后端·python·flask
帅次4 分钟前
Android 高级工程师面试速记版
android·java·面试·kotlin·binder·zygote·android runtime
独自归家的兔7 分钟前
OCPP 1.6 协议详解:ClearCache 清除缓存指令
java·后端·spring
sjsjsbbsbsn8 分钟前
OpenAI 接口协议 & 大模型Java调用 核心总结
java·开发语言
AI人工智能+电脑小能手9 分钟前
【大白话说Java面试题】【Java基础篇】第16题:HashMap中Key为null时,元素存放的位置
java·开发语言·面试·哈希算法·散列表
我登哥MVP10 分钟前
【SpringMVC笔记】 - 12 - 全注解开发
java·spring boot·笔记·spring·tomcat·intellij-idea
我命由我1234511 分钟前
Android 开发问题:Raw use of parameterized class ‘Class‘
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
阿丰资源13 分钟前
基于SpringBoot的高校心理教育辅导系统(附源码+数据库+文档)
数据库·spring boot·后端
鹏程十八少14 分钟前
8. 2026金三银四 Android别再说你会用 RecyclerView了!20道面试题测测你的真实水平
前端·后端·面试