ich durch die Feder Dokumentation würde, und kam über die folgenden Anweisung-Warum getBean() sollte im Frühjahr Anwendung vermieden werden
Sie können dann getBean verwenden Instanzen Ihrer Bohnen abzurufen. Die Application Schnittstelle hat ein paar andere Methoden für Abrufen von Bohnen, sondern im Idealfall Code Anwendung sollte sie nie verwenden. Tat Anwendungscode sollte bei allen, keine Anrufe die getBean() Methode haben und somit alle keine Abhängigkeit von Frühlings-APIs auf . Zum Beispiel bietet die Integration von Spring mit Web-Frameworks Dependency-Injection für verschiedene Web-Framework-Komponenten wie Controller und JSF-gesteuerte Beans, so dass Sie eine Abhängigkeit von einer bestimmten Bean über Metadaten deklarieren können (z. B. eine Autoverringerung Annotation).
Ref- https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html
In meiner Anwendung, erhalte ich einige Parameter zu meiner Client-Methode, basierend auf denen, spritze ich ordnungsgemäße Umsetzung der Schnittstelle. Die Art, wie ich es mache, ist, nach der Verkettung dieser Parameter nach der Bean-ID zu suchen. Für Beispiel- wenn ich erhalten type=C
, subType=D
, bekomme ich die Bohne mit bean id=typeCsubTypeD
von getBean (beanId) aufrufen. , d. H., Meine Abhängigkeiten werden über die Laufzeit entschieden.
Ich habe durch Why is Spring's ApplicationContext.getBean considered bad?
gegangen Aber dies deckt Fall meiner Verwendung nicht (wie auch durch einen Kommentar in dieser Frage angesprochen).
interessante Frage, könnten Sie den Code teilen? Wie kommen Parameter zustande? – Andrew
Mein Projekt wird als Jar-Bibliothek in einer anderen Anwendung verwendet. Diese Anwendung nennt die Methoden dieses Jar. Jetzt, basierend auf welchem Parameter es passiert, muss ich die Bohne auswählen und das Ergebnis produzieren. – Deb