@Configuration
@Profile("live")
public class LiveProfileConfig{
@Bean
public BaseInterface commonInterface(){
return new LiveComponent();
}
}
@Configuration
@Profile("test")
public class TestProfileConfig{
@Bean
public BaseInterface commonInterface(){
return new TestComponent();
}
}
现在,在Main Spring启动应用程序中,我设置了" live"个人资料如下
@ContextConfiguration(classes = {LiveProfileConfig.class, TestProfileConfig.class},loader=AnnotationConfigContextLoader.class)
@ActiveProfiles(value="live")
然后调用其中一个implmentation以根据活动配置文件使用组件
@Service
public class AnotherImpl implements AnotherInterface {
@Autowired
BaseInterface commonInterface;
}
现在,我想基于活动配置文件访问一个组件方法(即LiveComponent / TestComponent)。
它适用于JUnit测试,但是当我尝试使用Spring Boot Application运行它时,它会给我以下错误。
需要一个bean,但是找到了2个,考虑标记其中一个 bean作为@Primary,更新消费者以接受多个bean,或者 使用@Qualifier来识别应该使用的bean
任何帮助?