Apabila bekerja dengan Spring, adalah perkara biasa untuk mengurus kebergantungan melalui anotasi dan suntikan kebergantungan. Walau bagaimanapun, situasi mungkin timbul apabila anda mempunyai objek buatan sendiri di luar konteks Spring. Dalam kes sedemikian, bagaimanakah anda masih boleh memanfaatkan keupayaan suntikan Spring?
Pertimbangkan senario berikut:
<code class="java">public class MyClass { @Autowired private AnotherBean anotherBean; } ... MyClass obj = new MyClass();</code>
Anda telah membuat instantiation MyClass secara manual tetapi mahu menyuntik kebergantungannya seperti Bean lain. Bagaimanakah anda melakukannya?
Spring menyediakan antara muka AutowireCapableBeanFactory, yang membolehkan kami menyuntik kebergantungan ke dalam mana-mana objek sewenang-wenangnya, termasuk objek yang dibuat sendiri. Untuk mengakses BeanFactory:
<code class="java">private @Autowired AutowireCapableBeanFactory beanFactory;</code>
Menggunakan beanFactory, anda boleh menyuntik dependensi ke dalam objek anda:
<code class="java">public void doStuff() { MyBean obj = new MyBean(); beanFactory.autowireBean(obj); // obj will now have its dependencies autowired. }</code>
Selepas memanggil autowireBean, objek instantiated anda akan mempunyai kebergantungannya disuntik dan sedia untuk digunakan. Pendekatan ini membolehkan anda memanfaatkan keupayaan suntikan kebergantungan Spring walaupun untuk objek yang anda buat secara manual.
Atas ialah kandungan terperinci Bagaimana untuk Menyuntik Ketergantungan ke dalam Objek Sendiri pada Musim Bunga?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!