Add jar file to spring-boot classpath at runtime

删除回忆录丶 提交于 2019-12-22 10:24:14

问题


I want develop a modular application using spring-boot and plugins. The plugins will be handled with spring-plugin and these are stored in jars files in a directory (for example: /home/application/plugins).How can I add jars files to the application classpath at runtime and loading classes and beans (plugins) that are in these jars files. Best regards, HLicea


回答1:


You need to use PropertiesLauncher instead of JarLauncher:

java -cp "yourBoot.jar" -Dloader.path=plugins/ -Dloader.main=your.mainClass org.springframework.boot.loader.PropertiesLauncher

This will make java load the jars in the plugins directory and spring load all the classes in those jars marked as @Configuration into the context.




回答2:


I believe "standard" java approach should work here, e.g. for Linux:

java -cp "yourBoot.jar:plugins/*" org.springframework.boot.loader.JarLauncher

Only trick is that I have taken Main-Class from boot's uberjar.



来源:https://stackoverflow.com/questions/28725846/add-jar-file-to-spring-boot-classpath-at-runtime

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!