摘要:最近閑暇時(shí)寫(xiě)了一個(gè)小測(cè)試的工具,為了方便使用了。該測(cè)試工具最關(guān)鍵的步驟是動(dòng)態(tài)加載每個(gè)測(cè)試模塊對(duì)應(yīng)的的包。這是我考慮到是不是的比較特殊,不是。具體參見(jiàn)此大神的實(shí)驗(yàn)。遂修改代碼請(qǐng)輸入代碼
最近閑暇時(shí)寫(xiě)了一個(gè)hessian 小測(cè)試的工具,為了方便使用了spring boot。該測(cè)試工具最關(guān)鍵的步驟是動(dòng)態(tài)加載每個(gè)測(cè)試模塊對(duì)應(yīng)的hessian api的jar包。開(kāi)始的加載代碼為:
URLClassLoader loader=new URLClassLoader(new URL[]{new URL("file:"+jarPathStrategy.fileStorePath(moduleName,jarname))}); loader.loadClass(className);
在IDE直接運(yùn)行spring boot 的main函數(shù),every thing is ok !
當(dāng)我將項(xiàng)目編譯成jar包,上傳到測(cè)試環(huán)境執(zhí)行:java -jar 后,發(fā)現(xiàn)通過(guò)URLClassLoader 無(wú)法找到hessian的類(lèi),一頓調(diào)試排查后,IDE 依舊OK,命令起到你jar 依舊無(wú)法工作。這是我考慮到是不是spring boot的classloader 比較特殊,不是systemclassloader。google一下,果不其然跟我想的一樣,spring boot 的classloader 繼承體系有所變化。具體參見(jiàn)此大神的實(shí)驗(yàn)(http://hengyunabc.github.io/s...)。遂修改代碼:
URLClassLoader loader=new URLClassLoader(new URL[]{new URL("file:"+jarPathStrategy.fileStorePath(moduleName,jarname))},parentClassLoader); loader.loadClass(className);請(qǐng)輸入代碼
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/75012.html
摘要:的打包結(jié)構(gòu)改動(dòng)是這個(gè)引入的這個(gè)的本意是簡(jiǎn)化的繼承關(guān)系,以一種直觀的優(yōu)先的方式來(lái)實(shí)現(xiàn),同時(shí)打包結(jié)構(gòu)和傳統(tǒng)的包應(yīng)用更接近。目前的繼承關(guān)系帶來(lái)的一些影響有很多用戶(hù)可能會(huì)發(fā)現(xiàn),一些代碼在里跑得很好,但是在實(shí)際部署運(yùn)行時(shí)不工作。 前言 對(duì)spring boot本身啟動(dòng)原理的分析,請(qǐng)參考:http://hengyunabc.github.io/s... Spring boot里的ClassLoad...
摘要:也就是說(shuō),可以執(zhí)行成功,是因?yàn)橹懒说穆窂剑f(shuō)明在啟動(dòng)調(diào)用之前,指定了的位置。判斷當(dāng)前的介質(zhì),是啟動(dòng),還是啟動(dòng)。 Spring-Boot啟動(dòng)之前做了哪些事? Spring Boot Jar文件探究 初始化一個(gè)Spring 應(yīng)用,添加如下依賴(lài) 4.0.0 org.springframework.boot spring-boot-sta...
摘要:設(shè)置應(yīng)用上線(xiàn)文初始化器的作用是什么源碼如下。來(lái)看下方法源碼,其實(shí)就是初始化一個(gè)應(yīng)用上下文初始化器實(shí)例的集合。設(shè)置監(jiān)聽(tīng)器和設(shè)置初始化器調(diào)用的方法是一樣的,只是傳入的類(lèi)型不一樣,設(shè)置監(jiān)聽(tīng)器的接口類(lèi)型為,對(duì)應(yīng)的文件配置內(nèi)容請(qǐng)見(jiàn)下方。 Spring Boot 的應(yīng)用教程我們已經(jīng)分享過(guò)很多了,今天來(lái)通過(guò)源碼來(lái)分析下它的啟動(dòng)過(guò)程,探究下 Spring Boot 為什么這么簡(jiǎn)便的奧秘。 本篇基于 S...
時(shí)間:2017年12月01日星期五說(shuō)明:本文部分內(nèi)容均來(lái)自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com 教學(xué)源碼:無(wú) 學(xué)習(xí)源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 課程介紹 熱部署的使用場(chǎng)景 本地調(diào)式 線(xiàn)上發(fā)布 熱部署的使用優(yōu)點(diǎn) 無(wú)論本地還是線(xiàn)上,都適用 無(wú)需重啟服務(wù)器:提高開(kāi)發(fā)、調(diào)式效率、提升發(fā)布、運(yùn)維效率、降低運(yùn)維成本 前置...
摘要:你可以試著沿著調(diào)用棧代碼一層一層的深入進(jìn)去,如果你不打斷點(diǎn),你根本不知道接下來(lái)程序會(huì)往哪里流動(dòng)。接下來(lái)再看看運(yùn)行時(shí)堆棧,看看一個(gè)請(qǐng)求的調(diào)用棧有多深。就是如此被自動(dòng)裝配進(jìn)的。 摘要: 神奇的SpringBoot。 原文:SpringBoot 究竟是如何跑起來(lái)的? 作者:老錢(qián) Fundebug經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有。 不得不說(shuō) SpringBoot 太復(fù)雜了,我本來(lái)只想研究一下...
閱讀 3005·2021-10-12 10:12
閱讀 3052·2021-09-22 16:04
閱讀 3287·2019-08-30 15:54
閱讀 2602·2019-08-29 16:59
閱讀 2902·2019-08-29 16:08
閱讀 868·2019-08-29 11:20
閱讀 3492·2019-08-28 18:08
閱讀 648·2019-08-26 13:43