在运行时将jar动态添加到SpringBoot
我正在使用SpringBoot
1.4.2。我希望能够从命令行启动SpringBoot应用程序,并指定其他外部jar,在我启动应用程序时也应对其进行组件扫描。我无法使用,spring-
boot-maven-plugin因为当我要启动它时,我将没有spring boot应用程序的pom。
到目前为止,我已经尝试了以下操作,my-jar.jar
Spring Boot应用程序在哪里,external-
jar.jar我想在命令行中包含的外部jar是:
java -cp my-jar.jar -Dloader.path=external-jar.jar -Dloader.main=com.my.Application org.springframework.boot.loader.JarLauncher
这将启动但不进行组件扫描 external-jar.jar
java -cp external-jar.jar:my-jar.jar -Dloader.main=com.my.Application org.springframework.boot.loader.JarLauncher
这无法启动,表示即使满足@Autowired
in的条件external-jar.jar
也不能满足in的条件my-
jar.jar。我试过颠倒类路径上jar的顺序,这不能解决问题。
java -Dloader.path="external-jar.jar" -jar my-jar.jar
这将启动但不进行组件扫描 external-jar.jar
我在SpringApplication类顶部的组件扫描路径有两个包路径my-jar.jar
,external-
jar.jar并且我已经验证了external-jar.jar
直接在pom中引用时它是组件扫描的。
回答:
您使用了错误的启动器。支持loader.path
和loader.main
被提供PropertiesLauncher
,但你使用JarLauncher
。
以上是 在运行时将jar动态添加到SpringBoot 的全部内容, 来源链接: utcz.com/qa/436373.html