Пример Spring Autowiring @Qualifier

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