Exemple de Spring Autowiring @Qualifier

Exemple Spring Autowiring @Qualifier

Au printemps, @Qualifier signifie, quel bean est qualifié pour être câblé automatiquement sur un champ. Voir le scénario suivant:

Exemple de câblage automatique

Voir l'exemple ci-dessous, il transfère automatiquement un bean «person» dans la propriété person du client.

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;
    //...
}

Mais, deux beans similaires «com.example.common.Person» sont déclarés dans le fichier de configuration du bean. Spring saura-t-il quel haricot devrait être câblé automatiquement?





    

    
        
    

    
        
    

Lorsque vous exécutez l'exemple ci-dessus, il frappe l'exception ci-dessous:

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]

Exemple @Qualifier

Pour résoudre le problème ci-dessus, vous avez besoin de@Quanlifier pour indiquer à Spring quel bean doit être câblé automatiquement.

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;
    //...
}

Dans ce cas, le bean «personA» est câblé automatiquement.

Customer [person=Person [name=exampleA]]

Télécharger le code source

Téléchargez-le -Spring-AutoWiring-Qualifier-Example.zip (6 Ko)