资讯专栏INFORMATION COLUMN

spring boot classloader

smartlion / 975人阅读

摘要:最近闲暇时写了一个小测试的工具,为了方便使用了。该测试工具最关键的步骤是动态加载每个测试模块对应的的包。这是我考虑到是不是的比较特殊,不是。具体参见此大神的实验。遂修改代码请输入代码

最近闲暇时写了一个hessian 小测试的工具,为了方便使用了spring boot。该测试工具最关键的步骤是动态加载每个测试模块对应的hessian api的jar包。开始的加载代码为:

URLClassLoader loader=new URLClassLoader(new URL[]{new URL("file:"+jarPathStrategy.fileStorePath(moduleName,jarname))});
loader.loadClass(className);

在IDE直接运行spring boot 的main函数,every thing is ok !

当我将项目编译成jar包,上传到测试环境执行:java -jar 后,发现通过URLClassLoader 无法找到hessian的类,一顿调试排查后,IDE 依旧OK,命令起到你jar 依旧无法工作。这是我考虑到是不是spring boot的classloader 比较特殊,不是systemclassloader。google一下,果不其然跟我想的一样,spring boot 的classloader 继承体系有所变化。具体参见此大神的实验(http://hengyunabc.github.io/s...)。遂修改代码:

URLClassLoader loader=new URLClassLoader(new URL[]{new URL("file:"+jarPathStrategy.fileStorePath(moduleName,jarname))},parentClassLoader);
loader.loadClass(className);请输入代码

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75012.html

相关文章

  • 深入Spring BootClassLoader的继承关系和影响

    摘要:的打包结构改动是这个引入的这个的本意是简化的继承关系,以一种直观的优先的方式来实现,同时打包结构和传统的包应用更接近。目前的继承关系带来的一些影响有很多用户可能会发现,一些代码在里跑得很好,但是在实际部署运行时不工作。 前言 对spring boot本身启动原理的分析,请参考:http://hengyunabc.github.io/s... Spring boot里的ClassLoad...

    lifesimple 评论0 收藏0
  • Spring-Boot启动之前做了哪些事?

    摘要:也就是说,可以执行成功,是因为知道了的路径,说明在启动调用之前,指定了的位置。判断当前的介质,是启动,还是启动。 Spring-Boot启动之前做了哪些事? Spring Boot Jar文件探究 初始化一个Spring 应用,添加如下依赖 4.0.0 org.springframework.boot spring-boot-sta...

    susheng 评论0 收藏0
  • Spring Boot 2.x 启动全过程源码分析(上)入口类剖析

    摘要:设置应用上线文初始化器的作用是什么源码如下。来看下方法源码,其实就是初始化一个应用上下文初始化器实例的集合。设置监听器和设置初始化器调用的方法是一样的,只是传入的类型不一样,设置监听器的接口类型为,对应的文件配置内容请见下方。 Spring Boot 的应用教程我们已经分享过很多了,今天来通过源码来分析下它的启动过程,探究下 Spring Boot 为什么这么简便的奥秘。 本篇基于 S...

    MobService 评论0 收藏0
  • 慕课网_《Spring Boot热部署》学习总结

    时间:2017年12月01日星期五说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com 教学源码:无 学习源码:https://github.com/zccodere/s... 第一章:课程介绍 1-1 课程介绍 热部署的使用场景 本地调式 线上发布 热部署的使用优点 无论本地还是线上,都适用 无需重启服务器:提高开发、调式效率、提升发布、运维效率、降低运维成本 前置...

    Channe 评论0 收藏0
  • SpringBoot究竟是如何跑起来的?

    摘要:你可以试着沿着调用栈代码一层一层的深入进去,如果你不打断点,你根本不知道接下来程序会往哪里流动。接下来再看看运行时堆栈,看看一个请求的调用栈有多深。就是如此被自动装配进的。 摘要: 神奇的SpringBoot。 原文:SpringBoot 究竟是如何跑起来的? 作者:老钱 Fundebug经授权转载,版权归原作者所有。 不得不说 SpringBoot 太复杂了,我本来只想研究一下...

    DevWiki 评论0 收藏0

发表评论

0条评论

smartlion

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<