2010-08-26 44 views
11

Tôi không quen thuộc với các thành phần "khung" "này, nhưng ai đó có thể cho tôi giới thiệu 101 về mối quan hệ của họ khác? Về cơ bản, tôi muốn biết đại khái về: làOSGi vs Spring vs Struts vs EJB so với Hibernate - một câu hỏi hoàn toàn mới của người mới

  1. gì và các đối tác với nhau

  2. gì và công nghệ bổ sung là gì (ví dụ, A như một khuôn khổ có thể được sử dụng với B như một thành phần)

  3. tôi đã bỏ lỡ những tên tuổi lớn nào trong danh sách mà tôi không nên có?

Có ai cho tôi giới thiệu cấp cao không? Sau khi đọc hai câu trả lời đầu tiên, ai đó có thể giải thích thêm về Spring so với OSGi - họ có ở thị trường riêng biệt (Enterprise vs. Mobile) không?

Rất cám ơn

Trả lời

10

Vâng, bạn có thể thử và đọc điều gì đó về chúng?

  • Struts - là một khuôn khổ cho việc tạo ra các trang web trên đầu trang của Java servlet "công nghệ"
  • Xuân - là một sự phụ thuộc-phun "container" để quản lý cấu hình của chương trình Java (tức là hệ thống dây điện các thành phần của bạn với nhau)
  • Hibernate - là một khung bản đồ đối tượng-quan hệ cho bắc cầu cơ sở dữ liệu quan hệ (RDMS) và các chương trình hướng đối tượng.
  • EJB - là một phần của đặc tả Java Enterprise Edition. Vấn đề trong số này là bán rất nhiều máy chủ ứng dụng đắt tiền từ Oracle, BEA và IBM. Họ thất bại (tốt, một chút); do đó Spring
  • OSGi - là "vùng chứa" để quản lý một ứng dụng được tạo thành từ nhiều thành phần, nơi bạn muốn hoán đổi các mô-đun (hoặc nâng cấp) mà không cần khởi động lại hệ thống. Nó bắt đầu ra định hướng về phía thị trường điện thoại di động và tôi đã không bao giờ thực sự gặp nó "trong doanh nghiệp"

Đây là một mức độ nào trực giao công nghệ, ví dụ họ không loại trừ lẫn nhau. Spring bây giờ là bổ sung với OSGi, và công nghệ servlet là một tập con của Java EE.

+1

bạn có thể nhận xét về phần "Mùa xuân và OSGi là bổ sung" không? – sean

+0

Điểm * của EJB là cung cấp mô hình thành phần phân tán với xử lý giao dịch (an toàn) toàn cầu, bảo mật, v.v. (mọi thứ khác là tiếp thị kỹ thuật và các công cụ liên quan đến thương mại). Và nó cũng có ý nghĩa để phân biệt EJB 2.x từ EJB 3.x vì chúng có ít điểm chung (Spring là một phản ứng với EJB 2.x, EJB 3.x là các POJO có thể chạy trong các thùng chứa nhúng kiểu Spring) . Trên thực tế, cá nhân tôi không có nhiều điều tiêu cực để nói về EJB 3.x. –

+0

@sean - vâng, tôi không chắc chắn nên sử dụng từ nào. Mùa xuân có OSGi-d trong những năm gần đây, mặc dù tôi đã không tự mình sử dụng mặt đó –

13

Dấu "vs" không chính xác, vì nhiều trong số này có thể được sử dụng cùng nhau.

  • OSGi là kỹ thuật mô-đun hóa (chứ không phải là khuôn khổ). Nó cung cấp cho bạn khả năng tách phần mềm của bạn thành các mô-đun độc lập có thể cùng tồn tại trong các phiên bản khác nhau, có và không có các mô-đun khác

  • Container tiêm phụ thuộc vào mùa xuân - nhẹ. Nó cho phép bạn kết nối các thành phần của bạn bằng cách xác định các phụ thuộc của chúng và cho phép khung làm việc nhanh và cấu hình chúng, do đó cho phép tính linh hoạt cao hơn (không thể nói thêm các từ khóa ở đây).

  • Struts - một MVC, cấu Action-Based - được sử dụng trong các trang web tier

  • EJB - Các componnets kinh doanh của JavaEE - bạn đặt logic kinh doanh của bạn trong Enterprise JavaBeans, và bạn phải xử lý giao dịch, xử lý nhà nước (JMS) tiêu thụ nhắn, timers, vv out of the box

  • Hibernate - một ORM (ánh xạ đối tượng-quan hệ) giải pháp - về cơ bản nó cho phép bạn làm việc với đối tượng (oop) khi bạn có một cơ sở dữ liệu quan hệ như một lưu trữ dữ liệu.

+1

+1 nhưng tôi xem xét một phần của Spring bạn đang đề cập đến nhiều hơn như một thùng chứa hơn là một khuôn khổ (bán nó như là khuôn khổ là một phần của tiếp thị, nhưng nó thực sự là một container). –

+4

Mùa xuân lớn hơn DI. Không ai nghĩ đến AOP nhiều như họ cần. Có ba chân để phân mùa xuân: DI, AOP, và các mô-đun. – duffymo

+0

nhưng sau đó OSGi cũng là một vùng chứa. vs trông đúng cho cặp OSGi và Spring, nơi mùa xuân trông giống như một người chiến thắng rõ ràng. –

0

Tôi cũng khuyên bạn nên đọc điều gì đó về GWT. Các nhân viên của Google cố gắng giải thích tất cả kiến ​​trúc liên quan đến web.

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