Spring boot Spring Boot-通过命令行选择服务实现

Spring boot Spring Boot-通过命令行选择服务实现,spring-boot,Spring Boot,是否可以通过application.properties文件中的命令行选项或值来选择要使用的服务实现(理想情况下为默认值)。该解决方案是否适用于@EnableAutoConfiguration 我的用例如下:我有一个有3个服务实现的应用程序,根据环境的不同,我想选择其中一个 目前只有一个实现被标记为@Service,否则@EnableAutoConfiguration不起作用。也许您可以使用。用@Profile(“…”)标记每个@Bean实现,然后用spring.profiles.active=

是否可以通过application.properties文件中的命令行选项或值来选择要使用的服务实现(理想情况下为默认值)。该解决方案是否适用于
@EnableAutoConfiguration

我的用例如下:我有一个有3个服务实现的应用程序,根据环境的不同,我想选择其中一个


目前只有一个实现被标记为
@Service
,否则
@EnableAutoConfiguration
不起作用。

也许您可以使用。用
@Profile(“…”)标记每个
@Bean
实现,然后用
spring.profiles.active=…
启动应用程序,以选择所需的Bean。

有效。然而,我不得不在配置和集成测试中引入一些重复。在我的配置和集成测试的主要部分,我必须将System.setProperty(“spring.profiles.active”,“两者”);,其中“两者”是默认配置文件。有没有建议只定义一次默认配置文件?我不会使用系统属性(如果有另一个应用程序在同一个JVM中运行呢?)。您可以在测试中使用
@ActiveProfile
,在main方法中使用
SpringApplication
(或生成器)设置概要文件。如果它真的是一个全局设置,您也可以将其放入
application.properties
中。谢谢您的推荐。我在测试和配置中都更改了配置。但我还是不知道;我不喜欢在应用程序配置和我的单元测试中都复制默认值。您现在是否知道是否有方法以某种方式继承默认值?