[英]External Jars in to spring boot application deployed in heroku
[英]Loading external jars in spring boot
我們如何在運行時加載額外的 jar 和引導 jar。
主 jar : Main
.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.