Java EE 6 Bean Management: Panduan Komprehensif untuk @ManagedBean, @Inject, dan @Named
Java EE 6 memperkenalkan pelbagai anotasi untuk pengurusan kacang dan suntikan pergantungan, memupuk sedikit kekeliruan. Panduan ini bertujuan untuk membongkar kerumitan dan mewujudkan garis panduan penggunaan yang jelas untuk @javax.annotation.ManagedBean, @javax.inject.Named, @javax.faces.ManagedBean dan @javax.inject.Inject.
Memahami Jenis Kacang dalam Java EE 6
Kacang terurus ialah objek yang kitaran hayatnya diuruskan oleh bekas. Java EE 6 menampilkan pelbagai bekas yang menguruskan jenis kacang mereka sendiri:
Bila Menggunakan Setiap Anotasi
@javax.annotation.ManagedBean
Anotasi ini mengisytiharkan kacang yang diuruskan oleh bekas EJB. Ia digunakan untuk mencipta kacang terurus untuk aplikasi EJB.
@javax.inject.Named vs. @javax.faces.ManagedBean
Kedua-dua anotasi mengenal pasti kacang yang boleh dirujuk dengan nama. @javax.inject.Named digunakan untuk kacang CDI dan EJB, manakala @javax.faces.ManagedBean khusus untuk kacang JSF.
@javax .inject.Inject
Anotasi ini digunakan untuk suntikan kebergantungan dalam konteks CDI dan EJB. Ia menyuntik kacang ke dalam kacang lain, membolehkan mereka mengakses kebergantungan yang diperlukan.
Contoh Penggunaan
EJB:
@Stateless @ManagedBean public class MyEJB { ... }
CDI:
@Named("myBean") @RequestScoped public class MyBean { @Inject private MyService service; ... }
JSF:
@ManagedBean(name="myManagedBean") @RequestScoped public class MyManagedBean { ... }
Memilih Kacang Yang Tepat
Jangan sekali-kali menggunakan @javax.faces.ManagedBean melainkan perlu untuk bekas servlet tanpa sokongan CDI.
Gunakan kacang CDI untuk kebanyakan senario, melainkan anda memerlukan ciri lanjutan bagi EJB seperti pengurusan transaksi atau pemeliharaan negeri.
Gunakan EJB apabila anda perlu mengakses EJB jauh atau setempat, mengurus transaksi yang diedarkan dan menggunakan ciri perusahaan lanjutan.
Untuk sokongan @ViewScoped dalam CDI, pertimbangkan untuk menggunakan perpustakaan yang serasi seperti jahitan muka atau MyFaces CODI atau pilih @ViewAccessScoped atau @ConversationScoped.
Atas ialah kandungan terperinci Anotasi Java EE 6 Mana Yang Perlu Anda Gunakan untuk Pengurusan Kacang dan Suntikan Ketergantungan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!