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

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

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

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

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

相关推荐
牧瀬クリスだ1 分钟前
深入解析wait与notify及多线程实战案例
java
AI人工智能+电脑小能手3 分钟前
【大白话说Java面试题 第97题】【Mysql篇】第27题:说说分库与分表的设计?
java·开发语言·数据库·分布式·mysql·算法
2301_7926748610 分钟前
java学习(day37)
java
洒脱的六边形战士加辣12 分钟前
Java排序方法全解析
java·数据结构·算法
ofoxcoding13 分钟前
MiniMax M3 实测手记:踩完坑之后,我总结了报错处理和省 token 的几个办法
java·前端·人工智能·ai
Python+9914 分钟前
线程创建、生命周期、线程池
java
ch.ju20 分钟前
Java Programming Chapter 4——The set-get method.
java·开发语言
段ヤシ.24 分钟前
回顾Java知识点,面试题汇总Day12:tomcat、 Java Web(持续更新)
java·前端·tomcat·java web
JAVA学习通25 分钟前
从 Bean 到微服务:一张图吃透 Spring 全家桶底层原理
java·前端·spring
布朗克16827 分钟前
19 集合框架:List——ArrayList与LinkedList深度对比
java·list·集合框架