Spring 4 vs Jersey para servicios web REST


Estamos planeando hacer una nueva aplicación con la versión spring 4.0.6. Utilizamos un controlador que puede devolver "XML"o " JSON". En el proyecto anterior hemos implementado con éxito el soporte Jersey con Spring para REST usando la API JAX-RS, pero después de leer algunos artículos y sugerencias de personas mayores, dijeron que Spring está proporcionando un soporte de DESCANSO bastante bueno.

Algunos de los puntos que realmente me confunden si uso el soporte de descanso de resorte sin usar JAX-RS y Jersey son:

  1. Cómo organizar y desmarcar en Primavera MVC ?

  2. Es necesario para organizar o desmarcar la necesidad de utilizar jax-rs.

  3. Si el marshal y el unmaraling son manejados automáticamente por spring, entonces cómo sabe sobre xmlRootElements.

Todavía estoy confundido si la primavera demuestra muy buen apoyo de DESCANSO, entonces ¿por qué la gente todavía va con Jersey para DESCANSAR? Realmente buscando saber más en detalles.

Si dijera cualquier cosa mal por favor ignóralo. La explicación con el ejemplo es realmente útil.

Gracias de antemano!!

Author: Cassio Mazzochi Molin, 2014-10-10

2 answers

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 (tu pregunta se cerraría bastante rápido). Si ya está usando Spring para todo lo demás y no es requerido para usar JAX-RS, entonces Spring MVC tiene sentido total.

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

  1. En lugar de MessageBodyReaders/Writers, Spring MVC está usando HttpMessageConverters para manejar (un)marshalling de 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 (onu)ordenar recursos. De hecho, las implementaciones de JAX-RS y Spring MVC use 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 soporta muchos HttpMessageConverters, con Jackson para JSON, JAXB para XML y muchos otros. Spring 4.1.0 added more HttpMessageConverters :

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

Para un ejemplo más completo con REST in Spring, echa un vistazo a esta guía de introducción (obtendrá un ejemplo completo en ejecución en 10-15 minutos).

De nuevo, la última parte de su pregunta es bastante subjetiva: hay muchas soluciones populares para construir servicios de DESCANSO en la JVM, no solo Jersey y Spring (Dropwizard, Play! Marco, etc).

 112
Author: Brian Clozel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-19 17:17:54

El soporte 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 Spring ReST support sobre JAX-RS implementor.

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

 22
Author: VGaur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-07 19:36:48