Sự khác biệt giữa Spring, Struts, Hibernate, JavaServer Faces, Tapestry là gì?


199

Tôi có thể biết sự khác biệt giữa:

  1. Mùa xuân
  2. Struts
  3. Struts 2
  4. Ngủ đông
  5. Khuôn mặt máy chủ Java
  6. Trang máy chủ Java
  7. Tấm thảm

Là những công nghệ / khung bổ sung cho nhau? Hoặc chúng là lựa chọn thay thế cho nhau (sau khi tôi sử dụng một trong số chúng, sau đó tôi không cần sử dụng cái kia)?

Cảm ơn.

Câu trả lời:


267
  1. Spring là một container IoC (ít nhất là cốt lõi của Spring) và được sử dụng để kết nối mọi thứ bằng cách sử dụng phép nội xạ phụ thuộc. Spring cung cấp các dịch vụ bổ sung như quản lý giao dịch và tích hợp liền mạch các công nghệ khác nhau.
  2. Struts là một khung trình bày dựa trên hành động (nhưng không sử dụng nó cho sự phát triển mới).
  3. Struts 2 là một khung trình bày dựa trên hành động , phiên bản 2 của phần trên (được tạo từ sự hợp nhất của WebWork với Struts).
  4. Hibernate là một công cụ ánh xạ quan hệ đối tượng, một khung bền vững .
  5. JavaServer Faces là khung trình bày dựa trên thành phần .
  6. JavaServer Pages là một công nghệ khung nhìn được sử dụng bởi tất cả các khung trình bày được đề cập cho khung nhìn.
  7. Tapestry là một khung trình bày dựa trên thành phần khác .

Vì vậy, để tóm tắt:

  • Struts 2, JSF, Tapestry (và Wicket, Spring MVC, Stripes) là các khung trình bày . Nếu bạn sử dụng một trong số họ, bạn không sử dụng cái khác.
  • Hibernate là một khung công tác bền vững và được sử dụng để duy trì các đối tượng Java trong cơ sở dữ liệu quan hệ.
  • Spring có thể được sử dụng để kết nối tất cả những thứ này lại với nhau và để cung cấp quản lý giao dịch khai báo.

Tôi không muốn làm cho mọi thứ trở nên khó hiểu hơn nhưng lưu ý rằng Java EE 6 cung cấp tương đương hiện đại, được tiêu chuẩn hóa và rất đẹp của các khung công tác trên: JSF 2.0 và Facelets cho bản trình bày, JPA 2.0 cho sự kiên trì, Tiêm phụ thuộc, v.v. Phát triển mới, đây là IMO một tùy chọn nghiêm túc , Java EE 6 là một ngăn xếp tuyệt vời .

Xem thêm


2
Tôi muốn chỉ ra rằng trong bối cảnh so sánh này, một số người cũng sử dụng từ Spring để chỉ khung MVC của riêng nó (đẹp hơn nhiều so với Struts IMO).
MetroidFan2002

Giải thích cặn kẽ, nhưng nó vẫn quá kỹ thuật. Tôi khuyên bạn nên giải thích nó trong thuật ngữ cư sĩ. Dù sao các liên kết ở cuối đã làm điều đó.
Noob

Câu trả lời thực sự là một điểm khởi đầu tuyệt vời, nhưng có thể được cải thiện bằng cách giải thích các khái niệm chính được đưa ra (khung dựa trên yêu cầu so với khung dựa trên thành phần, bộ chứa IoC, Khung trình bày so với khung kiên trì ...) Hiện tại, nó đòi hỏi rất nhiều bổ sung googeling, nhưng nó vẫn là một câu trả lời tốt, và điểm khởi đầu tuyệt vời! Upvote.
Wouter

19

Nói chung là...

Hibernate được sử dụng để xử lý các hoạt động cơ sở dữ liệu. Có một bộ chức năng tiện ích cơ sở dữ liệu phong phú, giúp giảm số lượng dòng mã của bạn. Đặc biệt là bạn phải đọc @ Chú thích của ngủ đông. Nó là một khung ORM và lớp kiên trì.

Spring cung cấp một bộ phong phú của cơ chế làm việc dựa trên Tiêm. Hiện nay, Spring đã nổi tiếng. Bạn cũng phải đọc về Spring AOP. Có một cây cầu giữa Struts và Hibernate. Chủ yếu là Spring cung cấp loại tiện ích này.

Struts2 cung cấp chương trình dựa trên hành động. Có một bộ thẻ Struts phong phú. Struts chứng minh lập trình dựa trên hành động để bạn phải duy trì tất cả sự kiểm soát có liên quan của quan điểm của mình.

Ngoài ra, Tapestry là một khung công tác khác cho Java. Trong đó bạn phải xử lý chỉ .tml(tệp mẫu). Bạn phải tạo hai tệp chính cho bất kỳ lớp nào. Một là lớp JAVA và một lớp khác là mẫu của nó. Cả hai tên đều giống nhau. Tapestry tự động gọi các lớp liên quan.


7

Bạn có thể xem tổng quan và xếp hạng cho chính mình ở đây . Hibernate là một ORM, vì vậy bạn có thể sử dụng struts + Hiberante hoặc spring + hibernate để xây dựng một ứng dụng web. Các khung web khác nhau và nhiều cái thay thế cho nhau.


4

Spring là một khung ứng dụng liên quan đến IOC (Inversion of Control).

Struts 2 là một khung MVC ứng dụng web xử lý các hành động.

Hibernate là một ORM (Ánh xạ quan hệ đối tượng) liên quan đến dữ liệu liên tục.


3

Nói ngắn gọn,

Struts dành cho phát triển Front-end của trang web

Hibernate dành cho phát triển back-end của trang web

Spring dành cho phát triển stack stack của trang web trong đó Spring MVC (Model-View-Controller) dành cho Front-end. ORM, JDBC để truy cập / tích hợp dữ liệu (phụ trợ). Vân vân


2

Trong chế độ ngủ đông, bạn không cần bận tâm về cách tạo bảng trong SQL và bạn không cần nhớ kết nối, câu lệnh được chuẩn bị như dữ liệu đó vẫn được duy trì trong cơ sở dữ liệu. Vì vậy, về cơ bản, nó làm cho cuộc sống của một nhà phát triển dễ dàng.


2

Spring là một khung công tác nguồn mở và trọng lượng nhẹ được tạo bởi Rod Johnson vào năm 2003. Spring là một khung hoàn chỉnh và mô-đun, khung Spring có thể được sử dụng cho tất cả các triển khai lớp cho một ứng dụng thời gian thực hoặc mùa xuân có thể được sử dụng để phát triển lớp cụ thể của một ứng dụng thời gian thực.

Struts là một khung ứng dụng web nguồn mở để phát triển các ứng dụng web Java EE. Nó sử dụng và mở rộng API Java Servlet để khuyến khích các nhà phát triển áp dụng kiến ​​trúc mô hình bộ điều khiển (MVC) của mô hình xem. Ban đầu nó được Craig McClanahan tạo ravà quyên góp cho Quỹ Apache vào tháng 5 năm 2000.

Dưới đây là biểu đồ so sánh sự khác biệt giữa Spring và Strut Framework

nhập mô tả hình ảnh ở đây


0

Các trang và thành phần của tấm thảm là các POJO đơn giản (Đối tượng Java cũ đơn giản ) bao gồm các getters và setters để dễ dàng truy cập vào các tính năng ngôn ngữ Java.


0

Sự khác biệt giữa Spring , StrutsHibernate như sau:

  1. Spring là một Khung ứng dụng nhưng Struts và ngủ đông thì không.
  2. Spring và Hibernate có trọng lượng nhẹ nhưng Struts 2 thì không.
  3. Spring và Hibernate có kiến ​​trúc phân lớp nhưng Struts 2 thì không.
  4. Spring và Hibernate hỗ trợ khớp nối lỏng lẻo nhưng Struts 2 thì không.
  5. Struts 2 và Hibernate có thư viện thẻ nhưng Spring thì không.
  6. Spring và Hibernate có khả năng tích hợp dễ dàng với các công nghệ ORM nhưng Struts thì không.
  7. Struts 2 có khả năng tích hợp dễ dàng với các công nghệ phía máy khách nhưng Spring và Hibernate thì không.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.