2010-03-04 30 views
6

Tôi có một ứng dụng JSF 2.0 mà tôi muốn bắt đầu thêm trình xác nhận cho. Một tổng quan cơ bản về kiến ​​trúc của ứng dụng như sau.Tôi có nên sử dụng Xác thực Bean với EJB 3.1, JSF2.0 và JPA không?

Tôi có Đậu được quản lý có chứa các phiên bản của các lớp chú giải JPA của tôi và EJB. EJB có trách nhiệm truy cập vào cơ sở dữ liệu giao dịch. Các lớp được chú thích JPA là valuebound với các facelet của tôi (và sử dụng EJB để truy cập db).

Tôi muốn có khả năng sử dụng xác thực Bean và viết ràng buộc tùy chỉnh, tuy nhiên điều này có nghĩa là tôi phải thêm những ràng buộc đó vào các lớp chú giải JPA của tôi. Điều này có vẻ như tôi đang vi phạm sự phân chia mối quan tâm của tôi. (Trộn trình bày/xác thực với các lớp/DAO được chú giải JPA) Có tốt hơn nếu không sử dụng tính hợp lệ Bean trong trường hợp này không? Cấu trúc của tôi có thiếu sót không? Có cách nào ưu tiên để làm điều này mà tôi không biết?

Cảm ơn!

Trả lời

5

Xác thực là một phần của logic nghiệp vụ của bạn và do đó phải có mặt trong mô hình miền của bạn là các thực thể kiên trì của bạn. Vì vậy, hoàn toàn không có gì sai khi có chúng trong các thực thể JPA của bạn.

Xác thực không thuộc về bản trình bày bởi vì ngay cả khi bạn thay đổi lớp trình bày của mình (giả sử bạn sẽ hiển thị một loạt dịch vụ web trên EJB), việc xác thực vẫn cần phải có.

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