Warum wird Springs ApplicationContext.getBean als schlecht angesehen?
Springs ApplicationContext.getBean()-Methode scheint eine bequeme Möglichkeit zu sein, auf Beans zuzugreifen. aber es wird allgemein als schlechte Praxis angesehen. Stattdessen besteht der bevorzugte Ansatz darin, das Konzept der Inversion of Control (IoC) durch Verwendung der Abhängigkeitsinjektion zu übernehmen.
Delegieren der Abhängigkeitsinjektion
Der Aufruf von ApplicationContext.getBean() verstößt gegen das IoC-Prinzip durch Einführung einer Abhängigkeit von Spring innerhalb der konsumierenden Klasse. Dies macht die Klasse weniger flexibel und schwieriger zu testen. Es behindert auch die Möglichkeit, die Abhängigkeitsimplementierung einfach zu ändern.
Vorteile der Abhängigkeitsinjektion
Abhängigkeitsinjektion bietet zahlreiche Vorteile:
Implementierung der Abhängigkeitsinjektion in Spring
Anstatt ApplicationContext.getBean() aufzurufen, sollten Sie eine Methode in der konsumierenden Klasse deklarieren, um die Abhängigkeit als Argument zu erhalten. Spring fügt automatisch die entsprechende Abhängigkeit basierend auf der Bean-Konfiguration ein.
Beispielkonfiguration
<bean>
Bootstrapping
In Rufen Sie mit der Hauptmethode die Root-Bean „myApplication“ mithilfe von ApplicationContext.getBean(„myApplication“) ab. Dieses Root-Bean sollte Abhängigkeiten von allen anderen Diensten aufweisen, sodass keine getBean()-Aufrufe an anderer Stelle erforderlich sind.
Fazit
Das Vermeiden von ApplicationContext.getBean() fördert echtes IoC in Spring, was zu flexiblem, testbarem und wartbarem Code führt. Durch die Integration von Abhängigkeiten durch Methodenargumente kann Spring seine vorgesehene Rolle bei der Verwaltung von Abhängigkeiten erfüllen.
Das obige ist der detaillierte Inhalt vonGilt die Verwendung von ApplicationContext.getBean() von Spring als Anti-Pattern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!