繁体   English   中英

Spring boot CommandLineRunner 使用 run 方法调用所有类

[英]Spring boot CommandLineRunner invokes all classes with run method

我有多个类使用 CommandLineRunner 来运行应用程序。 但是当我使用 spring-boot-maven-plugin 启动应用程序时,所有类都被一个接一个地调用。 即使我将该类作为 main 方法运行,也会发生这种情况。 我怎样才能克服这个。 任何帮助将不胜感激。

在pom中使用以下代码来识别主要方法

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.2.4.RELEASE</version> <configuration> <mainClass>com.Foo</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>

一个潜在的解决方案,我曾经解决过类似的问题。 相似但不完全相同,所以我不能保证成功。

您可以尝试在每个实现上使用@ConditionalOnExpression ,并使用不同的值。 像这样: @ConditionalOnExpression("'${some.property}'=='myValue'")

application.properties添加属性以设置默认实现,并且在运行 jar 时,您可以使用java -jar myApp.jar --some.property=myOtherValue覆盖该实现。

Spring boot 应该根据哪个实现与您设置的属性值匹配来选择要使用的正确实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM