Mengapa Spring's ApplicationContext.getBean Dianggap Buruk?
Spring's ApplicationContext.getBean() mungkin kelihatan seperti cara yang mudah untuk mengakses kacang, tetapi ia secara amnya dianggap sebagai amalan yang tidak baik. Sebaliknya, pendekatan pilihan adalah untuk menerima konsep Inversion of Control (IoC) dengan menggunakan suntikan kebergantungan.
Mewakilkan Suntikan Ketergantungan
Memanggil ApplicationContext.getBean() melanggar prinsip IoC dengan memperkenalkan pergantungan pada Spring dalam kelas pengguna. Ini menjadikan kelas kurang fleksibel dan lebih sukar untuk diuji. Ia juga menghalang keupayaan untuk menukar pelaksanaan pergantungan dengan mudah.
Faedah Suntikan Ketergantungan
Suntikan Ketergantungan menawarkan pelbagai kelebihan:
Melaksanakan Kebergantungan Suntikan dalam Spring
Daripada menggunakan ApplicationContext.getBean(), anda harus mengisytiharkan kaedah dalam kelas penggunaan untuk menerima kebergantungan sebagai hujah. Spring secara automatik akan menyuntik kebergantungan yang sesuai berdasarkan konfigurasi kacang.Konfigurasi Contoh
<bean>
Bootstrapping
Dalam kaedah utama, dapatkan semula kacang akar "myApplication" menggunakan ApplicationContext.getBean("myApplication"). Kacang akar ini harus mempunyai kebergantungan pada semua perkhidmatan lain, menghapuskan keperluan untuk panggilan getBean() di tempat lain.Kesimpulan
Mengelakkan ApplicationContext.getBean() mempromosikan IoC sebenar dalam Spring, menghasilkan kod yang fleksibel, boleh diuji dan boleh diselenggara. Menerima suntikan pergantungan melalui hujah kaedah membolehkan Spring melaksanakan peranannya yang ditetapkan untuk mengurus pergantungan.Atas ialah kandungan terperinci Adakah Menggunakan Spring\'s ApplicationContext.getBean() Dianggap sebagai Anti-Corak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!