[Spring DI] Manuelle Beandefinition mit Qualifier für Autowiring

Unter diesem sperrigen Titel möchte ich auf die Fallstricke hinweisen die beim manuellen Registrieren von Beans auftreten können.

Beispiel für die manuelle Erstellung einer BeanDefinition mit Angabe eines Qualifiers (in diesem Fall der SimpleName der Bean)

Der größte Aha-Effekt liegt in der letzten Zeile.
Denn vorher sah meine Definition des AutowireCandidateQualifier wie folgt aus:

Was aber nicht funktioniert und in einer sagen wir mal länger gezogenen Debug-Session hab ich dann entdeckt das im
org.springframework.beans.factory.annotation.QualifierAnnotationAutowireCandidateResolver
folgendes geprüft wird:

bd steht hierbei für die BeanDefinition und type ist org.springframework.beans.factory.annotation.Qualifier.
Da ich den Qualifier anfangs nicht mit deklariert hatte, konnte es ja nicht klappen. Mit der Angabe des Qualifiers ging es dann. Halleluja!

Ein manuelles Abfragen der Qualifier-Informationen ist wie folgt möglich.

Gearbeitet habe ich in diesem Fall mit der Spring-Version 3.1.0.RELEASE.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.