Автор оригинала: mkyong.
Весной @Квалификатор означает, какой компонент имеет право автоматически подключаться к полю. Смотрите следующий сценарий:
Пример автоматической проводки
Смотрите пример ниже, он автоматически подключит компонент “персона” в свойство персоны клиента.
package com.mkyong.common; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; public class Customer { @Autowired private Person person; //... }
Но, два похожих боба” com.mkyong.common. Персона
” объявлены в файле конфигурации компонента. Будет ли Весна знать, какой человек должен быть подключен автоматически?
Когда вы запускаете приведенный выше пример, он попадает ниже исключения:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.mkyong.common.Person] is defined: expected single matching bean but found 2: [personA, personB]
Пример @Квалификатора
Чтобы устранить вышеуказанную проблему, вам нужно @Qualified сообщить Spring о том, какой компонент должен быть автоматически подключен.
package com.mkyong.common; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; public class Customer { @Autowired @Qualifier("personA") private Person person; //... }
В этом случае боб “Персона” автоматически подключается.
Customer [person=Person [name=mkyongA]]
Скачать Исходный Код
Ссылка
Оригинал: “https://mkyong.com/spring/spring-autowiring-qualifier-example/”