欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot使用PropertiesLauncher加載外部jar包

 更新時(shí)間:2023年07月31日 10:56:07   作者:brucelwl  
這篇文章主要介紹了SpringBoot使用PropertiesLauncher加載外部jar包,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

啟用SpringBoot的PropertiesLauncher

使用SpringBoot的PropertiesLauncher可以優(yōu)先加載外部的jar文件, 這樣可以在程序運(yùn)行前替換jar包,

官方文檔: Launching Executable Jars

使用演示

建立一個(gè)SpringBoot工程, 工程中依賴一個(gè)叫自定義的utils包, 版本是1.0.0, 通過(guò)http接口返回utils版本, 正常打包后訪問, 返回1.0.0版本

@Slf4j
@RestController
public class HelloController {
    @RequestMapping("/version")
    public String version() {
        String version = VersionUtil.getVersion();
        log.info("請(qǐng)求version: " + version);
        return VersionUtil.getVersion();
    }
    @RequestMapping("spi-version")
    public Object spiVersion() {
        ArrayList<String> objects = new ArrayList<>();
        ServiceLoader<AgentInterface> load = ServiceLoader.load(AgentInterface.class);
        for (AgentInterface registry : load) {
            objects.add(registry.hello());
        }
        return objects;
    }
    @RequestMapping("/spring-res")
    public Object springRes() throws IOException {
        ArrayList<String> objects = new ArrayList<>();
        PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver = new PathMatchingResourcePatternResolver();
        Resource[] resources = pathMatchingResourcePatternResolver.getResources("classpath*:META-INF/services/com.example.utils.AgentInterface");
        for (Resource resource : resources) {
            objects.add(resource.toString());
        }
        return objects;
    }
}

2.在啟用應(yīng)用程序時(shí)通過(guò)-Dloader.path=/libs指定外部jar的目錄, 再啟動(dòng), 訪問接口返回2.0.0版本, 說(shuō)明包替換成功

指定PropertiesLauncher啟動(dòng)類執(zhí)行

java -cp demo1-0.0.1-SNAPSHOT.jar org.springframework.boot.loader.PropertiesLauncher

在這里插入圖片描述

java -cp demo1-0.0.1-SNAPSHOT.jar -Dloader.path=/Users/admin/.m2/repository/com/example/utils/2.0.0/ org.springframework.boot.loader.PropertiesLauncher

在這里插入圖片描述

訪問java spi

可以正常只加載2.0.0版本中的實(shí)現(xiàn)類, 這個(gè)符合預(yù)期

在這里插入圖片描述

訪問資源文件

訪問資源文件, 會(huì)發(fā)現(xiàn)本應(yīng)只從2.0.0版本中加載文件, 結(jié)果1.0.0版本中的也被加載了

在這里插入圖片描述

到此這篇關(guān)于SpringBoot使用PropertiesLauncher加載外部jar包的文章就介紹到這了,更多相關(guān)SpringBoot加載外部jar包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解讀Maven安裝全過(guò)程

    解讀Maven安裝全過(guò)程

    下載并安裝Maven時(shí),需注意IDE的兼容版本,例如,IDEA2022及之前兼容至Maven3.8.1,而IDEA2020則至3.6.3,安裝后,配置MAVEN_HOME環(huán)境變量并調(diào)整settings.xml以使用本地倉(cāng)庫(kù)和阿里云鏡像,以優(yōu)化構(gòu)建和下載速度,最后,確保IDEA項(xiàng)目默認(rèn)使用正確的Maven配置
    2024-11-11
  • 使用itextpdf操作pdf的實(shí)例講解

    使用itextpdf操作pdf的實(shí)例講解

    下面小編就為大家分享一篇使用itextpdf操作pdf的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Spring Task 動(dòng)態(tài)修改任務(wù)執(zhí)行計(jì)劃cron方式

    Spring Task 動(dòng)態(tài)修改任務(wù)執(zhí)行計(jì)劃cron方式

    這篇文章主要介紹了Spring Task 動(dòng)態(tài)修改任務(wù)執(zhí)行計(jì)劃cron方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java中struts配置

    java中struts配置

    本文給大家詳細(xì)分析了在java項(xiàng)目中配置Struts的方法和示例,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。
    2015-06-06
  • 深入淺出講解Java集合之Collection接口

    深入淺出講解Java集合之Collection接口

    這篇文章主要介紹了深入淺出講解Java集合之Collection接口,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • SpringBoot 統(tǒng)一公共返回類的實(shí)現(xiàn)

    SpringBoot 統(tǒng)一公共返回類的實(shí)現(xiàn)

    本文主要介紹了SpringBoot 統(tǒng)一公共返回類的實(shí)現(xiàn),配置后臺(tái)的統(tǒng)一公共返回類,這樣做目的是為了統(tǒng)一返回信息,文中示例代碼介紹的很詳細(xì),感興趣的可以了解一下
    2022-01-01
  • mybatis-plus內(nèi)置雪花算法主鍵重復(fù)問題解決

    mybatis-plus內(nèi)置雪花算法主鍵重復(fù)問題解決

    本文主要介紹了mybatis-plus內(nèi)置雪花算法主鍵重復(fù)問題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Java超詳細(xì)講解設(shè)計(jì)模式之一的單例模式

    Java超詳細(xì)講解設(shè)計(jì)模式之一的單例模式

    單例模式(Singleton Pattern)是 Java 中最簡(jiǎn)單的設(shè)計(jì)模式之一。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式
    2022-03-03
  • maven中添加memcached.jar的配置步驟

    maven中添加memcached.jar的配置步驟

    在Java項(xiàng)目中使用Maven管理依賴時(shí),如果需要添加??memcached.jar??依賴,可以通過(guò)本文介紹的步驟進(jìn)行配置,文章通過(guò)代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-12-12
  • Spring?自定義propertyEditor的示例代碼

    Spring?自定義propertyEditor的示例代碼

    這篇文章主要介紹了Spring?自定義propertyEditor的示例代碼,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12

最新評(píng)論