2009-08-27 32 views
8

Có lý do nào để sử dụng Spring MVC (hoặc các khung công tác tương tự khác) làm máy chủ cho GWT RPC không? Theo như tôi có thể nói, 99,9% tính năng của Spring sẽ không được sử dụng. Tuy nhiên, rất nhiều người đang tìm kiếm những cách tốt nhất để sử dụng chúng cùng nhau.GWT và Spring MVC, có đáng không?

Có thể ai đó vui lòng giải thích, lợi ích của việc sử dụng khung MVC (trên máy chủ) với GWT là gì, khi tất cả những gì bạn cần ở phía máy chủ là logic nghiệp vụ?

+3

"99,9% tính năng của Spring sẽ không được sử dụng" ... những gì trên trái đất đã cho bạn ấn tượng đó? – skaffman

+0

Vâng, tôi đoán tôi đã không nhìn thấy tất cả các tập quán của nó. Tất cả những gì tôi làm việc với Spring là cách tiếp cận MVC khác nhau. – bezmax

+0

Đủ công bằng, nhưng có nhiều hơn * nhiều * cho Spring so với MVC. – skaffman

Trả lời

12

Tôi không thấy điểm tốt nào khi sử dụng Spring MVC hoặc thư viện Java MVC của doanh nghiệp khác (như Struts) cùng với một lớp - như bạn đã nói - chỉ cung cấp logic nghiệp vụ (và do đó có thể được giữ nhỏ làm sạch càng tốt).

Nhưng bản thân Spring không chỉ là lớp khuôn khổ web (MVC) và sử dụng tính năng tiêm phụ thuộc hoặc tính năng AOP hoặc API ORM hoặc ngôn ngữ kịch bản Groovy (hoạt động tốt với Spring) có thể là một lợi ích lớn cho bất kỳ ứng dụng.

+1

Tiêm phụ thuộc có thể đạt được bằng cách sử dụng các thư viện khác nhau. Ví dụ như Guice trọng lượng nhẹ. Không bao giờ sử dụng AOP, do đó, không biết nếu nó mát mẻ hay không. ORM ... Vâng, tôi quên mất điều đó. Có thể là một điểm tốt đẹp. – bezmax

+0

Nếu ứng dụng GWT của bạn cần thực hiện các cuộc gọi RPC đến máy chủ, thì lớp MVC vẫn có liên quan. – skaffman

+0

Không thấy làm thế nào tôi có thể bao gồm MVC cổ điển có đúng cách. Khung nhìn chỉ là một biểu diễn (XML hoặc JSON) của dữ liệu, do đó bạn thực sự không cần toàn bộ các công cụ HTML/JSP/Taglib. Tất nhiên việc tách mô hình và bộ điều khiển vẫn còn tồn tại. – Daff

7

Mùa xuân không chỉ là MVC.

Ngay cả khi bạn thực hiện giao diện người dùng với GWT, bạn vẫn cần một số loại logic phụ trợ. Những thứ như cơ sở dữ liệu, giao dịch, bảo mật, tích hợp dịch vụ bổ sung (email? SOAP?), V.v.

Cho mùa xuân này hoặc bất kỳ công nghệ bên máy chủ Java nào khác có thể là giải pháp tốt.

7

Như daff đã nói, Spring mang DI + AOP + giao dịch + nhiều thứ ... Sẽ rất hữu ích nếu bạn có những thứ đó được quản lý ở phía máy chủ của bạn với Spring.

Hơn nữa, thư viện gwtrpc-spring cung cấp một cách rất thuận tiện để khai báo POJOS là dịch vụ rpc, với chú thích @Service. Nó tránh khai báo của mỗi servlet rpc trong web.xml, vì việc quét các lớp với @Service là tự động.

GWT chỉ là bộ công cụ chứ không phải khung công tác. Nếu mùa xuân có thể dễ dàng dev của bạn, chỉ cần sử dụng nó.

4

Tôi có xu hướng sử dụng GWT + GIN ở phía máy khách và Guice ở phía máy chủ. Nhưng Spring có thể được sử dụng để duy trì, giao dịch và tổ chức logic kinh doanh của bạn ở phía máy chủ.