Ich habe bei mehreren stackoverflow Fragen gelesen, dass applicationContext.getbean eine schlechte Idee ist.Best Practice, um Frühlingsbohnen des gegebenen Typs zu erhalten
Why is Spring's ApplicationContext.getBean considered bad?
Ich möchte wissen, ob es eine bessere Art und Weise des Abtastens Bohnen eines bestimmten Typs im Frühjahr ist.
Mein Anwendungsfall ist es, Beans eines bestimmten Typs im Frühjahr zu starten und einige Methoden auf diesen Bohnen aufzurufen.
Von dem, was ich weiß gibt es nur zwei Möglichkeiten, dies zu tun.
- Entweder den Autowire-Anwendungskontext in eine Spring-Bean kopieren und appContext.getBeansOfType verwenden.
Haken in einem Post-Prozessor und filtert unsere Bohnen von bestimmtem Typ von
if (Bean-Instanz vom Typ)
ich in einem Post-Prozessor fühle Einhaken nur Bohnen eines bestimmten Typs zu verarbeiten, nicht a gute Idee. Weil das alle Bean-Initialisierungen abfängt.
Kann jemand einen besseren Ansatz zur Lösung meines Anwendungsfalls vorschlagen? (getBeans eines gegebenen Typs)
danke für die Antwort. Ich habe noch eine Frage. Was ist bei der Verwendung von applicationContext.getBeansOfType in diesem Fall falsch? Wir verbinden den Code nicht mit einer konkreten Klasse. Wir koppeln es mit einer abstrakten Klasse (oder möglicherweise einer Schnittstelle), die wir sowieso tun, indem wir eine Liste von Beans dieses Typs autowiren. – yaswanth
@yaswanth: Ich denke, das passt viel besser zu der Frage, die du verlinkt hast. Zu meiner Überraschung hat keine der vorhandenen Antworten in dieser Frage ein direktes Beispiel, wo Sie die Effekte sehen können. Also habe ich eins hinzugefügt: http://stackoverflow.com/a/41853545/327301 – yankee