Saltar al contenido

Spring 4 vs Jersey para servicios web REST

Solución:

Yo diría que tanto Jersey como Spring MVC son geniales: cada proyecto tiene su propio estilo y fortalezas. De todos modos, Stack Overflow no es el lugar adecuado para hacer comparaciones subjetivas (su pregunta se cerraría con bastante rapidez). Si ya está usando Spring para todo lo demás y no lo está requerido para usar JAX-RS, Spring MVC tiene mucho sentido.

Con respecto a características como la (des) ordenación, JAX-RS es solo una especificación después de todo; otras bibliotecas pueden ofrecer características similares sin implementar la misma API.

  1. En lugar de MessageBodyReaders / Writers, Spring MVC está usando HttpMessageConverters para manejar (des) ordenar los recursos REST. Spring MVC maneja la negociación de contenido y elige el mejor convertidor disponible para el trabajo (puede anotar métodos para indicar qué tipo de medio producen / consumen).

  2. No, no es necesario usar JAX-RS para (des) marshall recursos. De hecho, las implementaciones de JAX-RS y Spring MVC usan bibliotecas de serialización de terceros para hacer el trabajo; por lo que no está vinculado a un estándar en particular.

  3. En su versión 4.0.6, Spring admite muchos HttpMessageConverters, con Jackson para JSON, JAXB para XML y muchos otros. Spring 4.1.0 agregó más HttpMessageConverters:

    • Jackson ahora está disponible para JSON y XML
    • Google Protobuf
    • Gson para JSON, como alternativa a Jackson

Para responder a tu último punto, @XmlRootElement es una anotación JAXB y no forma parte de JAX-RS. Spring es compatible con JAXB.

Para obtener un ejemplo más completo con REST en Spring, consulte esta guía de inicio (obtendrá un ejemplo completo ejecutándose en 10-15 minutos).

Nuevamente, la última parte de su pregunta es bastante subjetiva: hay muchas soluciones populares para crear servicios REST en la JVM, no solo Jersey y Spring (Dropwizard, Play! Framework, etc.).

El soporte de AFAIK Spring REST se basa en Spring MVC y su implementación no JAX-RS, mientras que Jersey ha implementado la especificación JAX-RS. Aquellos que tienen Spring (Core, AOP o MVC) en su proyecto eligen el soporte Spring ReST sobre el implementador JAX-RS.

Recomiendo Jersey porque es maduro, implementa JAX-RS y es fácil de usar.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *