Я столкнулся с проблемой при запуске одного 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
]