2013-02-24 33 views

Trả lời

44
  1. javax.enterprise.context.SessionScoped (JSR 346) và tất cả các chú thích khác thuộc gói javax.enterprise.context.* duy trì bối cảnh CDI. CDI cung cấp một cơ chế thay thế, linh hoạt và mạnh mẽ hơn cho việc tiêm phụ thuộc, quản lý tài nguyên bean và chung trong không gian Java EE. Nó là một thay thế cho các bean được JSF quản lý và nó được thiết lập để thậm chí thay thế cơ chế quản lý bean JSF trong coming version of JSF.

    Hiện tại, các hạt có chú thích JSF và CDI có thể hoán đổi cho nhau trong bất kỳ ứng dụng web Java EE cụ thể nào (được đưa ra một số hạn chế nhỏ). Tuy nhiên, các bean được chú thích CDI, mở rộng vượt ra ngoài phạm vi của tầng web, đó là lý do tại sao đặc tả Java EE đang phát triển để làm cho CDI trở thành bean chuẩn và cơ chế DI.

    Mặc dù CDI có thể là lựa chọn hiển nhiên cho tất cả phát triển Java EE, các bean được quản lý JSF có thể di chuyển trên các thùng chứa servlet (Tomcat) và máy chủ ứng dụng (Glassfish, JBoss, v.v.). Đậu CDI chỉ có thể sống trong các máy chủ ứng dụng đầy đủ. Tuy nhiên, với some legwork, Tomcat 7 có thể được kết nối để hỗ trợ CDI.

    Cụ thể, javax.enterprise.context.SessionScoped là việc triển khai song song Phạm vi phiên JSF trong CDI.

  2. javax.faces.bean.SessionScoped (JSR 314) và tất cả các chú thích khác trong gói javax.faces.bean.* duy trì cơ chế quản lý phụ thuộc JSF cụ thể và quản lý bean. Đậu được chú thích bằng chú thích JSF tuy nhiên chỉ hữu ích trong tầng web. Tất cả các phạm vi có sẵn với các chú thích JSF đã được nhân rộng trong đặc tả CDI.

  3. javax.annotation.ManagedBean (JSR 316) và chú thích DI-liên quan khác theo javax.annotation.* là một nỗ lực để khái quát các chú thích dựa trên JSF cho các mục đích khác trong spec Java EE và thực sự không nên được sử dụng vào cuối nhà phát triển.

Tại sao chúng tồn tại? Vâng IMO, sự chuyển từ đậu JSF sang đậu CDI là một sự tiến hóa tự nhiên của công nghệ. Các hạt JSF đã có một hoạt động tốt nhưng các công cụ như Spring, Guice và Seam đã cho thấy rằng công nghệ này không đủ. Cũng cần phải thu hẹp khoảng cách giữa các thành phần web và EJB, và phản ứng với nhu cầu đó là CDI.

Xem các câu hỏi liên quan quá:

Các vấn đề liên quan