Anda mungkin ingin memasukkan Spring dalam daftar framework Injeksi Ketergantungan yang sedang Anda pertimbangkan. Berikut beberapa jawaban atas pertanyaan Anda:
Kopling ke rangka
Pico - Pico cenderung melarang setter injection tetapi selain itu, kelas Anda tidak perlu tahu tentang Pico. Hanya kabel yang perlu diketahui (berlaku untuk semua kerangka DI).
Guice - Guice sekarang mendukung anotasi JSR 330 standar , jadi Anda tidak memerlukan anotasi khusus Guice dalam kode Anda lagi. Spring juga mendukung anotasi standar ini. Argumen yang digunakan orang-orang Guice adalah bahwa tanpa prosesor anotasi Guice yang berjalan, ini seharusnya tidak berdampak jika Anda memutuskan untuk menggunakan kerangka kerja yang berbeda.
Spring - Spring bertujuan untuk memungkinkan Anda menghindari penyebutan framework Spring dalam kode Anda. Karena mereka memiliki banyak pembantu / utilitas lain dll. Godaannya cukup kuat untuk bergantung pada kode Spring.
Performa
Pico - Saya tidak terlalu paham dengan karakteristik kecepatan Pico
Guice - Guice dirancang untuk menjadi cepat dan perbandingan yang disebutkan dalam referensi memiliki beberapa angka. Tentunya jika kecepatan adalah pertimbangan utama baik menggunakan Guice atau kabel dengan tangan harus dipertimbangkan
Musim Semi - Musim semi bisa jadi lambat. Ada pekerjaan untuk membuatnya lebih cepat dan menggunakan pustaka JavaConfig harus mempercepat segalanya.
Kemudahan penggunaan
Pico - Mudah dikonfigurasi. Pico dapat membuat keputusan autowire untuk Anda. Tidak jelas bagaimana skala proyek ini sangat besar.
Guice - Mudah dikonfigurasi, Anda cukup menambahkan anotasi dan mewarisi dari AbstractModule untuk menyatukan semuanya. Menskalakan dengan baik ke project besar karena konfigurasi dijaga seminimal mungkin.
Spring - Relatif mudah dikonfigurasi, tetapi kebanyakan contoh menggunakan Spring XML sebagai metode konfigurasi. File Spring XML bisa menjadi sangat besar dan kompleks dari waktu ke waktu dan membutuhkan waktu untuk dimuat. Pertimbangkan untuk menggunakan campuran Pegas dan Injeksi Ketergantungan engkol tangan untuk mengatasi hal ini.
Ukuran Komunitas
Pico - Kecil
Guice - Medium
Musim Semi - Besar
Pengalaman
Pico - Saya belum memiliki banyak pengalaman dengan Pico tetapi ini bukan kerangka kerja yang banyak digunakan sehingga akan lebih sulit menemukan sumber daya.
Guice - Guice adalah kerangka kerja yang populer dan fokusnya pada kecepatan diterima ketika Anda memiliki proyek besar yang banyak Anda mulai ulang dalam pengembangan. Saya memiliki kekhawatiran tentang sifat terdistribusi dari konfigurasi, yaitu tidak mudah untuk melihat bagaimana seluruh aplikasi kita disatukan. Ini agak seperti AOP dalam hal ini.
Musim Semi - Musim semi biasanya adalah pilihan default saya. Konon, XML bisa menjadi tidak praktis dan perlambatan yang dihasilkan mengganggu. Saya sering berakhir menggunakan kombinasi Injeksi Ketergantungan dan Pegas buatan tangan. Ketika Anda benar-benar membutuhkan konfigurasi berbasis XML, Spring XML cukup bagus. Spring juga berupaya keras untuk membuat kerangka kerja lain lebih ramah Injeksi Ketergantungan yang dapat berguna karena mereka sering menggunakan praktik terbaik saat melakukannya (JMS, ORM, OXM, MVC, dll.).
Referensi