Berikut ini adalah diskusi yang bagus tentang topik tersebut. Gavin King merekomendasikan @Inject over @EJB untuk EJB yang bukan remote.
http://www.seamframework.org/107780.lace
atau
https://web.archive.org/web/20140812065624/http://www.seamframework.org/107780.lace
Re: Menyuntikkan dengan @EJB atau @Inject?
- Nov 2009, 20:48 America / New_York | Tautkan Gavin King
Kesalahan itu sangat aneh, karena referensi lokal EJB harus selalu serial. Bug di glassfish, mungkin?
Pada dasarnya, @Inject selalu lebih baik, karena:
it is more typesafe,
it supports @Alternatives, and
it is aware of the scope of the injected object.
Saya merekomendasikan untuk tidak menggunakan @EJB kecuali untuk mendeklarasikan referensi ke EJB jauh.
dan
Re: Menyuntikkan dengan @EJB atau @Inject?
Nov 2009, 17:42 America / New_York | Tautkan Gavin King
Apakah ini berarti @EJB lebih baik dengan EJB jarak jauh?
Untuk EJB jarak jauh, kami tidak dapat mendeklarasikan metadata seperti kualifikasi, @Alternative, dll, pada kelas bean, karena klien tidak akan memiliki akses ke metadata itu. Selain itu, beberapa metadata tambahan harus ditentukan bahwa kita tidak perlu untuk kasus lokal (nama JNDI global apa pun). Jadi semua hal itu harus pergi ke tempat lain: yaitu deklarasi @Produces.
@EJB
digunakan untuk injeksi sirkular (satu kacang tunggal dan satu kacang lainnya membutuhkan referensi satu sama lain)? (dengan mengacu pada jawaban saya di bawah ini - saya tidak yakin apakah saya melakukan hal yang benar dengan beralih ke@EJB
)