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