У меня есть несколько компонентов Spring, некоторые из которых находятся в общей библиотеке jar. Я не могу заставить @Qualifier
работать.
У меня по умолчанию autowire установлено на "byType" , это использует Spring 3.1.0.M2 и работает как автономный исполняемый файл. Если я удалю «TestTwoBean» из общей библиотеки, проект будет выполнен как положено.
MYPROJ-разделяемой lib.jar:
@Service
public class TestOneBean implements ITestBean {
}
@Service
public class TestTwoBean implements ITestBean {
}
myproj.jar:
@Service
public class TestConsumerBean {
@Autowired @Qualifier("testOneBean")
private ITestBean bean;
}
Я получаю исключение "нет уникального компонента с именем" во время выполнения:
org.springframework.beans.factory.UnsatisfiedDependencyException:
Ошибка создания компонента с именем 'testConsumerBean', определенным в файле [-]:
Неудовлетворенная зависимость выражается через свойство bean-компонента:: No
Определен уникальный бин типа [com.myco.ITestBean]: ожидается один
соответствующий бин, но найден 2: [testOneBean, testTwoBean]; вложенными
исключение
org.springframework.beans.factory.NoSuchBeanDefinitionException: нет
Определен уникальный бин типа [com.myco.TestBean]: ожидается один
соответствующий бин, но найден 2: [testOneBean, testTwoBean] в
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType (AbstractAutowireCapableBeanFactory.java:1167)
...
Не работает @Qualifier
в этой ситуации? Есть ли известный обходной путь?