Получение NoUniqueBeanDefinitionException в bazel при запуске IT - PullRequest
0 голосов
/ 30 сентября 2019

Я столкнулся с проблемой при запуске одного IT в коде. У меня есть 2 одинаковых бина, 1 в mock-beans.xml файле и другой с @service аннотацией в Java-коде. Бин, определенный в файле mock-beans.xml, аналогичен следующему

<bean id="ApplianceConfigServiceMock" class="com.abc.pmt.management.xnode.fabric.service.ApplianceConfigServiceMock">
</bean>
<alias name="ApplianceConfigServiceMock" alias="applianceConfigService" />

Этот файл mock-beans.xml импортируется как ресурс при запуске IT через другой файл test-comp.xml. Следующие конфигурации задаются в файле test-comp.xml.

<context:annotation-config />
<context:component-scan base-package="com.abc.pmt.management.xnode.fabric"/> 

Второй компонент com.abc.pmt.management.xnode.fabric.service.ApplianceConfigServiceMock помечен как @Service в коде Java.

Теперь при запуске IT в maven он работает правильноберет бин, определенный в файле mock-beans.xml, и не выдает ошибки. Но при запуске того же IT в bazel я получаю следующую ошибку

Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'com.abc.pmt.management.xnode.fabric.service.ApplianceConfigService' available: expected single matching bean but found 2: ApplianceConfigServiceMock,applianceConfigServiceMock
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:221)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1226)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1168)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593)

Есть ли в bazel другая конфигурация для springframework [например, какое-то автоматическое сканирование], которая может вызывать эту проблему? [ApplianceConfigServiceMock реализует com.abc.pmt.management.xnode.fabric.service.ApplianceConfigService]

...