2012-02-29 18 views
17

Próbuję zbudować usługę sieci Web REST (po stronie serwera), która pozwoli systemowi partnerskiemu na połączenie informacji o zamówieniu POST w formacie JSON. Czy powinienem używać JAX RS (na przykład z JBOSS RESTEasy) lub Spring MVC do zbudowania takiej usługi? Obaj wydają się być na tyle zdolni, aby osiągnąć to samo, co w przypadku budowania usługi REST.REST przy użyciu JAX RS lub Spring MVC

Dziękujemy!

Odpowiedz

18

Zależy, czy chcesz nauczyć się czegoś nowego, czy iść z tym, co już wiesz.

Jeśli masz już doświadczenie ze Spring MVC i chcesz szybko wykonać pracę, sugeruję pozostać przy Spring MVC. Istnieją pewne udoskonalenia funkcji REST w Spring 3.1, w tym możliwość generowania "end point documentation".

Jeśli, z drugiej strony, chcesz poszerzyć swoje CV i/lub cieszyć się nauką nowych technologii, to daj JAX RS odejść. Nie korzystałem z niego, ale jest to dedykowane środowisko WS, które prawdopodobnie ma jakąś funkcję, której potrzebujesz.

Oczywiście, jeśli masz doświadczenie z JAX RS ale nie MVC wiosny, a następnie odwrotnie stosuje :-)

10

Jeśli tworzysz projekt EE 5 następnie polecam przy użyciu JAX-RS z wiosny. RI dla JAX-RS, Jersey, ma serwlet dyspozytorski Spring JAX-RS. Ułatwia to zarządzanie wstrzyknięciem zależności za pomocą JAX-RS i zapewnia wszystkie funkcje Spring MVC, takie jak wiązanie i walidacja formularzy, ale możesz także użyć standardowego podejścia Java do REST - i, moim zdaniem, lepszego i lepszego łatwiejsze w zarządzaniu podejściem niż Spring REST.

Jeśli jest to aplikacja EE 6, możesz pomyśleć o porzuceniu Spring, ponieważ JAX-RS jest częścią specyfikacji EE 6 i możesz używać EE CDI w swoich klasach JAX-RS.

1

Uwaga, Jersey ma błąd, który wpływa na jego integrację z wiosny:

https://java.net/jira/browse/JERSEY-2301

Podsumowując, jeśli potrzebujesz AOP Wiosna w swoich zasobach JAX-RS nie będzie działać. Wstrzykiwanie zależności działa dobrze.

0

REST to bardziej architektura stylu tworzenia usług internetowych, które są bardzo łatwe do zrozumienia, nawet bez dokumentacji dla programisty. Normalni technicy mogą łatwo zrozumieć wzorce adresów URL, a typy odpowiedzi JSON i obsługa XML ułatwiają integrację z nowymi standardami modularyzacji javascript, takimi jak szkielet czy angular.js.

Z drugiej strony SpringMVC koncentruje się bardziej na architekturze stylu-widoku-kontrolera w stylu tworzenia aplikacji.

Powiązane problemy