@Named
cung cấp cho CDI được quản lý bean một tên EL được sử dụng trong các công nghệ chế độ xem như JSF hoặc JSP. Lưu ý rằng trong một ứng dụng CDI, bạn không cần chú thích @Named
để tạo một bean được quản lý bởi CDI (nhờ @Karl cho nhận xét của mình).
@ManagedBean
làm cho đậu bằng JSF quản lý và bạn có thể:
- tiêm nó vào đậu @ManagedBean chú thích khác
- truy cập nó từ quan điểm của bạn qua ngôn ngữ biểu hiện
(nhưng không phải vào đậu @Named!)
Xem điều này related question để biết thêm thông tin về cách thức hoạt động của loại tiêm trong cả hai loại đậu.
Lưu ý rằng cũng có sự khác biệt với phạm vi của hạt. Chúng đến từ các gói khác nhau nhưng được đặt tên giống nhau (JSF: javax.faces.bean
, CDI: javax.enterprise.context
, do đó, thường là nguồn gây nhầm lẫn và nhầm lẫn nếu bạn bao gồm lớp sai.
Từ kinh nghiệm của tôi: Bạn nên sử dụng hạt CDI bất cứ khi nào có thể vì chúng linh hoạt hơn so với các bean được JSF quản lý. Chỉ có nhược điểm là CDI không biết phạm vi xem, vì vậy bạn cần phải quay lại @ManagedBean hoặc sử dụng một số phần mở rộng của bên thứ ba như Seam
Nguồn
2012-06-12 10:35:29
Loại giới hạn nào? '@ ManagedBean' là tập con của các hàm' @ Named', vì vậy '@ Named' sẽ hoạt động ở mọi nơi. –