Saat ini saya sedang mempelajari model komponen Java EE 6 yang baru dan saya bingung dengan mekanisme injeksi ketergantungan terbaru. Jadi inilah pertanyaanku:
1) Apa perbedaan antara @Inject dan @EJB
2) Jika saya memiliki POJO sederhana yang berisi POJO lain (yang salah satunya adalah kode DAO), apa yang akan menjadi pilihan yang lebih baik: @Inject atau @EJB?
Bisakah saya mencampur @Inject dan @EJB?
Contohnya adalah:
ClassA mengimplementasikan InterfaceA dan memiliki sebuah instance dari ClassA_Adaptor
ClassA_Adaptor mengimplementasikan InterfaceAB dan memiliki instance dari ClassB
ClassB mengimplementasikan InterfaceB dan memiliki sebuah instance dari ClassB_Adaptor dan sebuah contoh DAO_ClassB
ClassB_Adaptor mengimplementasikan InterfaceB dan memiliki instance dari ClassC
ClassC mengimplementasikan InterfaceBC dan memiliki sebuah instance dari WebService_ClassC
DAO_ClassB akan menggunakan JPA 2.0 (@PersistenceContext)
Saya ingin menyuntikkan semuanya termasuk DAO dan WebService.
3) Apakah pendekatan yang buruk hanya menggunakan transaksional untuk operasi tertentu tetapi tidak untuk semua?
Sebagai contoh: Beberapa metode dalam DAO_ClassB adalah kueri biasa Anda, sedangkan metode lainnya adalah metode "tulis". Apakah buruk untuk tidak membungkus metode "BACA" dengan transaksi?
Untuk pemahaman saya, DAO_ClassB dapat dibungkus dengan transaksi menggunakan @EJB (menyuntikkan DAO_ClassB dan membuat semua metode transaksional). Bagaimana saya bisa mengendalikannya?
Maaf jika beberapa pertanyaan membingungkan karena saya hanya tahu potongan dan potongan model komponen baru Java EE 6.