Rumah > Java > javaTutorial > Adakah Menggunakan Spring\'s ApplicationContext.getBean() Dianggap sebagai Anti-Corak?

Adakah Menggunakan Spring\'s ApplicationContext.getBean() Dianggap sebagai Anti-Corak?

Patricia Arquette
Lepaskan: 2024-11-27 07:15:12
asal
794 orang telah melayarinya

Is Using Spring's ApplicationContext.getBean() Considered an Anti-Pattern?

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:

  • Decouples kelas:
  • Kelas menjadi agnostik tentang cara mereka memperolehnya kebergantungan.
  • Meningkatkan kebolehujian:
  • Kebergantungan olok-olok boleh disuntik dengan mudah untuk ujian.
  • Memudahkan kod:
  • Kelas memfokuskan pada tanggungjawab teras tanpa perlu risau tentang pergantungan pengurusan.

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan