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)