2015-04-17 24 views
14

Có sự giao dịch nào giữa việc sử dụng thùng chứa servlet Spring mvc và Jersey Rest không? Jersey tuân theo tiêu chuẩn Jax RS. Khi tôi tìm hiểu Spring mvc, nhiều hơn hoặc ít hơn trông giống nhau. Trong một số ứng dụng tôi thấy mọi người sử dụng servlet jersey mùa xuân. Nếu mùa xuân (dispatcher servlet với ánh xạ xử lý) có thể thực hiện tất cả công việc, thì nhu cầu của Jersey ở đây là gì? Cảm ơn trước.Sự khác biệt giữa mùa xuân mvc và Jersey

Trả lời

12

Spring MVC là một khung công tác Web frontend đầy đủ bao gồm hỗ trợ HTML và khuôn mẫu khác, cùng với các tính năng khác, ngoài các tính năng REST JSON/XML do Jersey cung cấp.

Spring MVC là lần đầu tiên và có cách làm riêng. JAX-RS được định nghĩa là một tiêu chuẩn cho các trình xử lý REST dựa trên chú thích, và Jersey là một thực thi tiêu chuẩn đó. (Nó rất giống với @Autowired và CDI.)

Cá nhân tôi thích Spring MVC vì tôi xây dựng trên ngăn xếp Spring và có thể sử dụng lại mã giữa trình xử lý JSON và HTML, nhưng các thành phần dự định được triển khai như một phần của chính khách hàng hệ thống có thể linh hoạt hơn nếu sử dụng JAX-RS.

6

Cá nhân tôi nghĩ rằng đó chỉ là vấn đề ưu tiên và quan điểm bạn đang xem xét từ đó. Tôi sẽ tiếp tục nói rằng khi thực hiện việc xem xét này, khi xây dựng các tầng khác nhau, bạn có thể nói rằng có thêm một "lớp REST", trên đầu trang của các lớp kinh doanh khác, sự kiên trì, vv. Cũng giống như việc triển khai kiên trì có thể được hoán đổi, vì vậy có thể triển khai REST.

Điều đó đang được nói, mặc dù các điểm cuối/lớp điều khiển/tài nguyên trông giống nhau trong thực hiện, các tính năng khác (của lớp REST) ​​được thực hiện hoàn toàn khác nhau. Nhìn vào nó từ góc độ mùa xuân, tôi nghĩ rằng những người cảm thấy thoải mái với mùa xuân sẽ chọn để giữ MVC như việc thực hiện REST, cho nó quen

nhìn nó từ góc độ Jersey, đây là nơi mà tôi nghĩ rằng hầu hết các quyết định tích hợp đi kèm trong; chọn cách triển khai các lớp bên dưới lớp REST. Cho rằng mùa xuân sẽ là một sự lựa chọn khả thi, vì nó có một hệ thống sinh thái phong phú. Nhưng là một người sử dụng Jersey, khuôn khổ Jersey (để thực hiện REST) ​​có vẻ trực quan hơn nhiều, nhưng điều đó hoàn toàn sai lệch. Để sử dụng mùa xuân và Jersey với nhau, bạn có thể có một cái nhìn tại Combining Spring project and Jersey

As far as Jersey là một thực hiện JAX-RS, tôi không thấy nó là một yếu tố quyết định trong việc lựa chọn thực hiện REST, khi nhìn vào nó từ một phối cảnh mùa xuân. Tôi thực sự không thấy nó có nhiều yếu tố. Trong môi trường Java EE, chắc chắn bạn có thể hoán đổi các triển khai với ít rắc rối, nhưng khi tích hợp Spring, nó không dễ dàng, vì có các mô-đun tích hợp và cấu hình liên quan đến việc tích hợp từng triển khai JAX-RS khác nhau với Spring.

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