最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot的類加載器(org.springframework.boot.loader)過(guò)程詳解

 更新時(shí)間:2020年11月04日 13:56:12   作者:EasyChill  
這篇文章主要介紹了springboot的類加載器(org.springframework.boot.loader),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

類加載器的分類。

在這里插入圖片描述

試驗(yàn):使用maven打包

<build>
  <plugins>
   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
     <execution>
      <id>copy-dependencies</id>
      <phase>prepare-package</phase>
      <goals>
       <goal>copy-dependencies</goal>
      </goals>
      <configuration>
       <outputDirectory>${project.build.directory}/lib</outputDirectory>
       <overWriteReleases>false</overWriteReleases>
       <overWriteSnapshots>false</overWriteSnapshots>
       <overWriteIfNewer>true</overWriteIfNewer>
      </configuration>
     </execution>
    </executions>
   </plugin>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
     <fork>true</fork>
     <mainClass>啟動(dòng)類的完整路徑</mainClass>
     <excludes>
      <exclude>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
      </exclude>
     </excludes>
     <layout>ZIP</layout>
     <includes>
      <include>
       <groupId>nothing</groupId>
       <artifactId>nothing</artifactId>
      </include>
     </includes>
    </configuration>
    <executions>
     <execution>
      <goals>
       <goal>repackage</goal>
      </goals>
     </execution>
    </executions>
   </plugin>
  </plugins>
 </build>

各個(gè)配置項(xiàng)的作用自行百度~

這樣生成的jar包,用壓縮工具打開以后是這樣

在這里插入圖片描述

在META-INF下打開MANIFEST.MF文件看看(記事本就可以打開)

在這里插入圖片描述

可以看到這里的類加載器是:PropertiesLauncher,文檔百度翻譯如下:

Launcher for archives with user-configured classpath and main class via a properties file. This model is often more flexible and more amenable to creating well-behaved OS-level services than a model based on executable jars.
Looks in various places for a properties file to extract loader settings, defaulting to application.properties either on the current classpath or in the current working directory. The name of the properties file can be changed by setting a System property loader.config.name (e.g. -Dloader.config.name=foo will look for foo.properties. If that file doesn't exist then tries loader.config.location (with allowed prefixes classpath: and file: or any valid URL). Once that file is located turns it into Properties and extracts optional values (which can also be provided overridden as System properties in case the file doesn't exist):
loader.path: a comma-separated list of directories (containing file resources and/or nested archives in .jar or .zip or archives) or archives to append to the classpath. BOOT-INF/classes,BOOT-INF/lib in the application archive are always used
loader.main: the main method to delegate execution to once the class loader is set up. No default, but will fall back to looking for a Start-Class in a MANIFEST.MF, if there is one in ${loader.home}/META-INF.

啟動(dòng)程序,用于通過(guò)屬性文件使用用戶配置的類路徑和主類進(jìn)行歸檔。與基于可執(zhí)行jar的模型相比,這種模型通常更靈活,更易于創(chuàng)建性能良好的OS級(jí)服務(wù)。

在不同位置查找屬性文件以提取加載程序設(shè)置,默認(rèn)為應(yīng)用程序.屬性在當(dāng)前類路徑或當(dāng)前工作目錄中。屬性文件的名稱可以通過(guò)設(shè)置系統(tǒng)屬性來(lái)更改加載程序.config.name(例如-Dloader.config.name=foo會(huì)尋找食品屬性. 如果該文件不存在,則嘗試loader.config.location(使用允許的前綴classpath:和file:或任何有效的URL)。找到該文件后,將其轉(zhuǎn)換為屬性并提取可選值(如果該文件不存在,也可以將其作為系統(tǒng)屬性進(jìn)行覆蓋):

加載程序.path:以逗號(hào)分隔的目錄列表(包含文件資源和/或.jar或.zip中的嵌套存檔文件)或要附加到類路徑的存檔文件??偸鞘褂脩?yīng)用程序檔案中的BOOT-INF/classes、BOOT-INF/lib

裝載機(jī).main:設(shè)置類裝入器后將執(zhí)行委托給的主方法。沒(méi)有默認(rèn)值,但將返回到在清單.MF,如果有${裝載機(jī).home}/中導(dǎo)。

這種也是配置:使用jar包外部的配置文件的啟動(dòng)方式的方法。在linux我們的啟動(dòng)腳本要使用對(duì)應(yīng)的類加載器來(lái)啟動(dòng)。

在這里插入圖片描述

如果你配置成其他的( <layout>ZIP</layout>此配置項(xiàng)去掉,main-class就會(huì)變成JarLauncher)比如:JarLauncher

Launcher for JAR based archives. This launcher assumes that dependency jars are included inside a /BOOT-INF/lib directory and that application classes are included inside a /BOOT-INF/classes directory.

基于JAR的檔案的啟動(dòng)程序。這個(gè)啟動(dòng)程序假設(shè)依賴項(xiàng)jar包含在/BOOT-INF/lib目錄中,應(yīng)用程序類包含在/BOOT-INF/classes目錄中。

就會(huì)有如下的錯(cuò)誤:項(xiàng)目啟動(dòng)失敗。

在這里插入圖片描述

springboot項(xiàng)目啟動(dòng),調(diào)用的是相應(yīng)的類加載器的main方法,而不是我們自己編寫的SpringApplication

Spring Boot Loader提供了一套標(biāo)準(zhǔn)用于執(zhí)行SpringBoot打包出來(lái)的jar,這套標(biāo)準(zhǔn)就是我們的類加載器

下面是一個(gè)例子,圖中有構(gòu)造方法,和類方法。

在這里插入圖片描述

友情鏈接

springboot整個(gè)api

PropertiesLauncher文檔

JarLauncher文檔

WarLauncher文檔

到此這篇關(guān)于springboot的類加載器(org.springframework.boot.loader)的文章就介紹到這了,更多相關(guān)springboot類加載器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IntelliJ IDEA 好用插件之a(chǎn)nalyze inspect code詳解

    IntelliJ IDEA 好用插件之a(chǎn)nalyze inspect code詳解

    這篇文章主要介紹了IntelliJ IDEA 好用插件之a(chǎn)nalyze inspect code的相關(guān)知識(shí),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-12-12
  • Java類的加載連接和初始化實(shí)例分析

    Java類的加載連接和初始化實(shí)例分析

    這篇文章主要介紹了Java類的加載連接和初始化,結(jié)合具體實(shí)例形式分析了java類的加載、連接、初始化相關(guān)原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-07-07
  • Java檢查字符串是否一致的四種方法

    Java檢查字符串是否一致的四種方法

    字符串比較是常見(jiàn)的操作,包括比較相等、比較大小、比較前綴和后綴串等,在 Java 中,比較字符串的常用方法有四個(gè):equals(),equalsIgnoreCase(),compareTo()和compareToIgnoreCase(),下面詳細(xì)介紹這四個(gè)方法的使用
    2024-04-04
  • spring?data?jpa查詢一個(gè)實(shí)體類的部分屬性方式

    spring?data?jpa查詢一個(gè)實(shí)體類的部分屬性方式

    這篇文章主要介紹了spring?data?jpa查詢一個(gè)實(shí)體類的部分屬性方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • SpringSecurity請(qǐng)求授權(quán)規(guī)則配置與注解詳解

    SpringSecurity請(qǐng)求授權(quán)規(guī)則配置與注解詳解

    這篇文章主要介紹了SpringSecurity請(qǐng)求授權(quán)規(guī)則配置與注解詳解,我們常使用@Secured與@PreAuthorize兩個(gè)注解在進(jìn)入方法前進(jìn)行角色、權(quán)限的控制,進(jìn)入方法前數(shù)據(jù)的過(guò)濾@PreFilter注解偶爾會(huì)看到,需要的朋友可以參考下
    2023-12-12
  • Spring?Security過(guò)濾器鏈體系的實(shí)例詳解

    Spring?Security過(guò)濾器鏈體系的實(shí)例詳解

    這篇文章主要介紹了Spring?Security過(guò)濾器鏈體系,通過(guò)思維導(dǎo)圖可以很好的幫助大家理解配置類的相關(guān)知識(shí),結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-02-02
  • Spring?AOP?創(chuàng)建代理對(duì)象詳情

    Spring?AOP?創(chuàng)建代理對(duì)象詳情

    這篇文章介紹了Spring?AOP?創(chuàng)建代理對(duì)象詳情,主要介紹AOP?創(chuàng)建代理對(duì)象和上下文相關(guān)的內(nèi)容,下文分享具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • 整理Java編程中常用的基本描述符與運(yùn)算符

    整理Java編程中常用的基本描述符與運(yùn)算符

    這篇文章主要介紹了Java編程中常用的基本描述符與運(yùn)算符整理,包括運(yùn)算符優(yōu)先級(jí)等平時(shí)經(jīng)常查看反復(fù)記憶的知識(shí)點(diǎn),需要的朋友可以參考下
    2016-02-02
  • 簡(jiǎn)單實(shí)現(xiàn)Java web服務(wù)器

    簡(jiǎn)單實(shí)現(xiàn)Java web服務(wù)器

    這篇文章主要為大家詳細(xì)介紹了簡(jiǎn)單實(shí)現(xiàn)Java web服務(wù)器的詳細(xì)步驟,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Java使用Socket通信傳輸文件的方法示例

    Java使用Socket通信傳輸文件的方法示例

    這篇文章主要介紹了Java使用Socket通信傳輸文件的方法,結(jié)合實(shí)例形式分析了java socket編程實(shí)現(xiàn)文件傳輸操作的相關(guān)技巧,需要的朋友可以參考下
    2017-06-06

最新評(píng)論

布拖县| 长垣县| 资兴市| 阿克陶县| 栾川县| 遂宁市| 合水县| 兴国县| 肇庆市| 德安县| 稷山县| 绥德县| 岐山县| 璧山县| 菏泽市| 山西省| 海口市| 卢湾区| 海兴县| 新兴县| 阿鲁科尔沁旗| 泽普县| 青川县| 富裕县| 福泉市| 永康市| 靖州| 广安市| 阜阳市| 平昌县| 大洼县| 新乡县| 神木县| 兴安盟| 缙云县| 东莞市| 大埔区| 金溪县| 梓潼县| 离岛区| 安庆市|