In meiner Anwendung verwende ich mehrere profiles, um bestimmte Beans für autowiring geeignet zu machen. Was ich vermisse, ist die Möglichkeit, eine Bean zum Autowiring zu berechtigen, wenn ein bestimmtes Profil NICHT aktiv ist.Einschließlich der Bean-Definition, wenn ein Profil NICHT aktiv ist
Der beste Weg, es zu tun, dass ich darüber nachgedacht, ist wie folgt:
- Nehmen wir an, wir eine Liste aller möglichen Profile haben, zum Beispiel {A B C D}.
- Für die bestimmte Ausführung aktive Profile sind {A, C}.
- Ich mache künstliche Profile für alle möglichen Profile, die nicht aktiv sind. Im Beispielfall würde ich {not_B, not_D} Profile erstellen.
- Die Bohnen möchte ich aktiv basierend auf nicht aktiven Profil
X
Ich mache aktiv für Profilnot_X
. In meinem Fall, wenn ich eine Bohne in Frage zu kommen für autowiring wenn Profil B nicht aktiv ist, wollte würde ich sie@Profile("not_B")
Diese Lösung erfordert jedoch ein up-front Wissen über alle möglichen Profile mit Anmerkungen versehen.
Können Sie sich eine bessere Lösung vorstellen?
Das wäre großartig, aber Frühling 3.2 ist jetzt in RC1, also ist es keine Option für mich. – ShyJ
Siehe meine Änderung der Post. Ich würde empfehlen, nicht mit @Profile dann zu initialisieren und dies in Spring-Konfiguration zu behandeln. – aweigold
@Shyj Dachte darüber nach (wie die Konfiguration des Klassenpfad-Scanners mit Ausschluss), aber das scheint einfach nicht so gut wie Profile zu sein ... – ShyJ