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 КБ)