Bei der Arbeit mit Spring ist es üblich, Abhängigkeiten durch Annotationen und Abhängigkeitsinjektion zu verwalten. Es kann jedoch vorkommen, dass Sie über ein selbstinstanziiertes Objekt außerhalb des Spring-Kontexts verfügen. Wie können Sie in solchen Fällen trotzdem die Injektionsfunktionen von Spring nutzen?
Stellen Sie sich das folgende Szenario vor:
<code class="java">public class MyClass { @Autowired private AnotherBean anotherBean; } ... MyClass obj = new MyClass();</code>
Sie haben instanziiert MyClass manuell, möchte aber seine Abhängigkeiten wie eine andere Bean einfügen. Wie gehen Sie vor?
Spring stellt die AutowireCapableBeanFactory-Schnittstelle bereit, die es uns ermöglicht, Abhängigkeiten in jedes beliebige Objekt, einschließlich selbstinstanziierter Objekte, einzufügen. So greifen Sie auf die BeanFactory zu:
<code class="java">private @Autowired AutowireCapableBeanFactory beanFactory;</code>
Mit der beanFactory können Sie Abhängigkeiten in Ihr Objekt einfügen:
<code class="java">public void doStuff() { MyBean obj = new MyBean(); beanFactory.autowireBean(obj); // obj will now have its dependencies autowired. }</code>
Danach Durch den Aufruf von autowireBean werden die Abhängigkeiten Ihres instanziierten Objekts eingefügt und sind einsatzbereit. Mit diesem Ansatz können Sie die Abhängigkeitsinjektionsfunktionen von Spring auch für Objekte nutzen, die Sie manuell erstellen.
Das obige ist der detaillierte Inhalt vonWie fügt man im Frühjahr Abhängigkeiten in selbstinstanziierte Objekte ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!