2010-08-26 33 views
46

Các Play Framework cung cấp cái nhìn tổng quan nhanh chóng sau đó, nhưng với ngoại lệ của mẫu Groovy động cơ (mà bạn có thể nhận được trong Spring MVC nếu bạn muốn), mùa xuân dường như cung cấp tất cả các tính năng tương tự và nhiều hơn nữa ...Web Frameworks: Play khác với Spring MVC như thế nào?

  • Sửa lỗi và nhấn tải lại! Chỉnh sửa các tệp Java của bạn, lưu, làm mới trình duyệt của bạn và xem kết quả ngay lập tức! Không cần phải biên dịch, triển khai hoặc khởi động lại máy chủ. Mùa xuân thực hiện điều này, điều này có thể gây phiền nhiễu.

  • Mô hình không quốc tịch Phát là hệ thống "Chia sẻ không có gì" thực sự. Sẵn sàng cho REST, nó có thể dễ dàng thu nhỏ bằng cách chạy nhiều phiên bản của cùng một ứng dụng trên một số máy chủ. Các ứng dụng Spring điển hình có một tầng ứng dụng không trạng thái; nó không hoàn toàn là RESTful trừ khi bạn muốn, nhưng Spring là "sẵn sàng cho REST".

  • Hệ thống mẫu hiệu quả Hệ thống mẫu sạch dựa trên Groovy như một ngôn ngữ biểu thức. Nó cung cấp sự thừa hưởng mẫu, bao gồm và các thẻ. Spring sử dụng Java, nhưng Groovy cũng là một lựa chọn.

  • Giải quyết lỗi nhanh chóng Khi xảy ra lỗi, phát sẽ hiển thị cho bạn mã nguồn và dòng chính xác chứa sự cố. Ngay cả trong các mẫu. Mùa xuân cũng thực hiện điều này.

  • Tất cả bạn cần để tạo ra một ứng dụng web mát mẻ Cung cấp tích hợp với Hibernate, OpenID, Memcached ... Và một hệ thống plugin. Mùa xuân tích hợp với mọi thứ và hơn thế nữa.

  • Java thuần túy Mã Java, sử dụng bất kỳ thư viện Java nào và phát triển với IDE ưa thích của bạn. Tích hợp độc đáo với nhật thực hoặc netbeans. Mùa xuân là Java thuần khiết.

  • Thực sự nhanh Bắt đầu nhanh và chạy nhanh! Chủ quan, nhưng mùa xuân khá nhanh.

Vậy khung chơi thực sự khác gì so với Spring MVC?

+2

Có vẻ như bạn đang đề cập đến Spring MVC nói riêng, không phải là Spring nói chung. – skaffman

+0

@Chơi so với Mùa xuân bạn có thể chia sẻ về một số tính năng bạn liệt kê ở trên. (như tự động tải lại, công cụ tạo mẫu .....). – quangson91

+0

Phát không hấp dẫn trừ khi bạn sử dụng Scala. Sau đó, nó đập tay Xuân xuống. – Jus12

Trả lời

9

Tôi tìm thấy xác nhận quyền sở hữu "thuần Java" ở hai bên rất buồn cười.

Tất nhiên, không thực tế khi một dự án sử dụng hoàn toàn không có gì ngoài java. Tuy nhiên, một nhãn "thuần Java" phải có một số tiêu chuẩn, tôi không nghĩ rằng một trong hai khuôn khổ đủ điều kiện.

Chơi thực sự sửa đổi ngữ nghĩa của ngôn ngữ Java. Đó là tất cả các quyền miễn là nó được xác định rõ ràng. Nếu bạn làm một số thao tác mã byte, chỉ cần trung thực về nó. Thông thường nó được thực hiện bằng thủ thuật AOP-ish, các phương pháp thể hiện được trang trí với các hành vi bổ sung, hành vi biểu hiện của chúng - những hành vi được viết trong mã, thường được bảo toàn. Đây không phải là quá khó chấp nhận, chúng ta có thể giả vờ mã của chúng ta được phân lớp theo khuôn khổ và các phương thức của chúng ta được ghi đè với hành vi bổ sung.

Trong Play, một phương thức tĩnh gọi một phương thức tĩnh khác trong cùng một lớp có thể có hiệu ứng phép thuật, và hành vi không giống như gọi phương thức. Đó là một vấn đề lớn, nếu một lập trình viên Java không còn có thể chắc chắn một cuộc gọi phương thức tĩnh là gì.

Mùa xuân - vâng, phần Java của họ vẫn là Java thuần khiết. Nhưng nó rất huyền diệu (từ POV của java), và phụ thuộc quá nhiều vào một khung nặng, gọi Spring là "pure Java", giống như gọi một burger "pure vege" nếu chúng ta bỏ qua thịt. Thịt là phần tốt nhất!

+4

Tôi thấy quan điểm của bạn. Trong chơi! một phương thức tĩnh công khai trong một lớp điều khiển là một hành động. gọi hành động từ một hành động đưa ra một chuyển hướng http. Một khi bạn biết rằng quy tắc đó không còn nhiều bất ngờ nữa, nhưng đó là một câu hỏi rất phổ biến trong vở kịch! danh sách thảo luận. Tôi đồng ý sẽ rõ ràng hơn khi có "thực thi", "hành động phản hồi" hoặc phương pháp tương tự ... – opensas

+19

Làm cách nào để trả lời câu hỏi này? Tất cả những gì tôi thấy là "cả hai đều làm những thứ kỳ diệu". –

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