我有多个使用CommandLineRunner运行应用程序的类。但是当我使用spring-boot-maven-plugin启动应用程序时,所有类都会一个接一个地调用。即使我将类作为主方法运行,也会发生这种情况。我怎么能克服这一点。任何帮助将不胜感激。
使用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>
答案 0 :(得分:2)
一个潜在的解决方案,我曾经解决过类似的问题。类似但不完全相同,所以我不能保证成功。
您可以尝试在每个实现上使用@ConditionalOnExpression,并使用不同的值。像这样:@ConditionalOnExpression("'${some.property}'=='myValue'")
。
在application.properties
中添加属性以设置默认实现,在运行jar时,您可以使用java -jar myApp.jar --some.property=myOtherValue
覆盖该实现。
Spring boot应根据您设置的属性的值匹配选择要使用的正确实现。