国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - 淺析Spring Boot中的spring-boot-load模塊

淺析Spring Boot中的spring-boot-load模塊

2021-03-27 11:38并發(fā)編程網(wǎng) Java教程

spring-boot-loader模塊允許我們使用java -jar archive.jar運(yùn)行包含嵌套依賴jar的jar或者war文件,它提供了三種類啟動(dòng)器。下面通過(guò)本文給大家介紹spring-boot-load模塊的相關(guān)知識(shí),感興趣的朋友一起看看吧

一、前言

正常情況下classloader只能找到j(luò)ar里面當(dāng)前目錄或者文件類里面的*.class文件。為了能夠加載嵌套jar里面的資源之前都是把嵌套jar里面的class文件和應(yīng)用的class文件打包為一個(gè)jar,這樣就不存在嵌套jar了,但是這樣做就不能很清晰的知道應(yīng)用到底依賴了哪些東西,哪些是應(yīng)用自己的,另外多個(gè)jar里面的class可能內(nèi)容不一樣但是文件名卻一樣。springboot中spring-boot-loader就是為優(yōu)雅解決這個(gè)問(wèn)題而誕生的。

spring-boot-loader模塊允許我們使用java -jar archive.jar運(yùn)行包含嵌套依賴jar的jar或者war文件,它提供了三種類啟動(dòng)器 (JarLauncher, WarLauncher and PropertiesLauncher),這些類啟動(dòng)器的目的一樣都是為了能夠加載嵌套在jar里面的資源(比如class文件,配置文件等)。[Jar|War]Launcher固定去查找當(dāng)前jar的lib目錄里面的嵌套jar文件里面的資源。

二、spring-boot-loader模塊提供的jar目錄結(jié)構(gòu)

Springboot中jar文件格式固定如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
archive.jar
 |
 +-META-INF(1
 | +-MANIFEST.MF
 +-org(2
 | +-springframework
 | +-boot
 | +-loader
 |  +-<spring boot loader classes>
 +-com(3
 | +-mycompany
 | + project
 | +-YouClasses.class
 +-lib(4
 +-dependency1.jar
 +-dependency2.jar
  • 結(jié)構(gòu)(1)jar文件中MANIFEST.MF文件存放處
  • 結(jié)構(gòu)(2) Spring-boot-loader本身需要的class放置處
  • 結(jié)構(gòu)(3) 應(yīng)用本身的文件放置處
  • 結(jié)構(gòu)(4)應(yīng)用依賴的jar固定放到lib目錄。

那么spring-boot是如何去按照這個(gè)結(jié)構(gòu)加載資源那?

  • 首先在打包時(shí)候會(huì)使用spring-boot-maven-plugin插件重寫(xiě)打成的jar文件,會(huì)設(shè)置META-INF/MANIFEST.MF中的
?
1
2
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.mycompany.project.MyApplication

并拷貝spring-boot-loader包里面的class文件到結(jié)構(gòu)(2),應(yīng)用依賴拷貝到(4)應(yīng)用類拷貝到(3)

  • 通過(guò)java -jar archive.jar 運(yùn)行時(shí)候Launcher會(huì)去加載JarLauncher類并執(zhí)行其中的main函數(shù),JarLauncher主要關(guān)心構(gòu)造一個(gè)合適的URLClassLoader加載器用來(lái)調(diào)用我們應(yīng)用程序(MyApplication)的main方法。

三、spring-boot-maven-plugin插件打包流程分析

淺析Spring Boot中的spring-boot-load模塊 

注:這里需要思考下為何要拷貝本來(lái)應(yīng)該放入到lib里面的spring-boot-loader.jar里面的class到結(jié)構(gòu)(2)?

四、JarLauncher執(zhí)行流程分析

淺析Spring Boot中的spring-boot-load模塊 

看完這個(gè)流程在分析下第三節(jié)留的問(wèn)題,如流程圖首先使用Appclassloader加載了JarLauncher類并創(chuàng)建了LaunchedURLClassLoader類,而LaunchedURLClassLoader是屬于spring-boot-loader.jar包里面的,而Appclassloader是普通的加載器不能加載嵌套的jar里面的文件,所以如果把spring-boot-loader.jar放到lib 目錄下,Appclassloader將找不到LaunchedURLClassLoader。所以在打包時(shí)候

拷貝本來(lái)應(yīng)該放入到lib里面的spring-boot-loader.jar里面的class到結(jié)構(gòu)(2)。

五、總結(jié)

spring-boot-load模塊通過(guò)自定義jar包結(jié)構(gòu)自定義類加載器優(yōu)雅的實(shí)現(xiàn)了嵌套jar資源的加載,通過(guò)打包時(shí)候重新設(shè)置啟動(dòng)類和組織jar結(jié)構(gòu),通過(guò)運(yùn)行時(shí)設(shè)置自定義加載器來(lái)實(shí)現(xiàn)嵌套jar資源加載。

原文鏈接:http://ifeve.com/spring-boot-loader/

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 午夜av电影 | 激情欧美一区二区三区中文字幕 | 亚洲国产第一页 | 日韩欧美在线观看视频 | 色吧av| 精品无码三级在线观看视频 | 亚洲成人一区 | 免费看黄在线 | 成人天堂666 | 国产精品一二三区视频出来一 | 午夜一级片 | 欧美激情专区 | 久久中文字幕一区二区三区 | 91在线观 | 日日夜夜精品 | 成人免费一区二区三区视频软件 | 成人久久久久久久久 | 日本中文在线 | 含羞草www国产在线视频 | 亚洲大片免费观看 | 久久毛片| 国产在线中文字幕 | 久久久国产视频 | 黄色片网站在线 | 欧美午夜一区二区三区免费大片 | 国产一区二区三区视频在线观看 | 欧美成人黄色网 | 久久av资源 | 精品婷婷 | 久久精品国产一区二区三 | 青草国产| 久久精品久久久久久 | 中文字幕一区三级久久日本 | 日韩精品免费在线观看 | 91精品国产亚洲 | 免费黄色大片 | 国产一区二区三区在线免费看 | 日韩欧美在线观看一区二区三区 | 午夜大片男女免费观看爽爽爽尤物 | 黄色一级片免费观看 | 日韩欧美一区二区三区免费观看 |