簡體   English   中英

在 spring boot 中加載外部 jar

[英]Loading external jars in spring boot

我們如何在運行時加載額外的 jar 和引導 jar。

主 jarMain .jar

附加 jar : Support .jar

Main項目是一個 gradle boot 項目。

Support項目不是 gradle 項目,而是為所需的 jar 提供編譯時依賴性。

扶持項目內容:

@RestController
@RequestMapping("/test")
public class CustomService implements WebMvcConfigurer {


    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public @ResponseBody String get() {
        return "Done!!";
    }
}

我試過的:

java -cp Support.jar:Main.jar -Dloader.path=Support.jar -Xbootclasspath/p:alpn-boot-8.1.11.v20170118.jar -Dloader.main=com.abc.app.MyApplication  org.springframework.boot.loader.PropertiesLauncher

引導啟動正常,但端點未注冊。

注意:我提到過注釋掃描。

@SpringBootApplication
@ComponentScan("com.abc")
public class MyApplication {
   ....
}

此外,Main.jar 將由不同的用戶從不同的地方運行。 每個用戶都可以提供他自己的 Support.jar 版本。 因此,將依賴項硬編碼到 Main 項目的 gradle 文件中是不可行的。

嘗試將@ComponentScan(basePackages=full.name.of.customservice.package ) 添加到您的 spring 應用程序配置中,或者使CustomService成為與您的@SpringApplication類相同的包

嘗試使用這個 - 來自https://github.com/kamranzafar/JCL的 org.xeustechnologies.jcl.JarClassLoader

JCL 是一個可配置的、動態的和可擴展的自定義類加載器,它直接從 Jar 文件和其他來源加載 java 類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM