2009-10-21 30 views
29

¿Hay alguna manera de compilar Spring Web llamadas que consumen y producen solicitudes formateadas application/json y respuestas, respectivamente?Spring 3 JSON con MVC

Tal vez esto no es Spring MVC, no estoy seguro. Estoy buscando bibliotecas de Spring que se comporten de manera similar a Jersey/JSON. El mejor caso sería si hubiera una anotación que pudiera agregar a las clases del Controlador que las convertiría en llamadas de servicio JSON.

Un tutorial que muestra cómo construir Spring Web Services con JSON sería genial.


EDIT: Busco un enfoque basado en anotación (similar a Jersey).

EDIT2: Al igual que Jersey, estoy buscando soporte REST (POST, GET, DELETE, PUT).

Edit3: Lo más preferiblemente, esta será la pom.xml entradas y alguna información sobre el uso de la versión nativa de primavera-js con Jackson primavera de las cosas.

+0

Se plantea un tema similar aquí: http://stackoverflow.com/questions/658936/is-there-a-library-to-convert-java-pojos-to-and-from-json-and-xml –

+0

dma_k - esa pregunta realmente no es tan similar. Esa pregunta se refiere a la conversión entre objetos Java y JSON, este pregunta específicamente cómo usar Spring MVC para enviar y recibir mensajes JSON. – stevedbrown

Respuesta

17

Sin duda puede tener controladores que devuelven una Vista que está en salida JSON. Eche un vistazo al the Spring-JSON project.

Para consumir solicitudes en JSON, supongo que lo que desea es que un controlador transfiera un parámetro de solicitud a una biblioteca JSON que podría analizar los datos.

+1

Esto no es exactamente lo que quiero. Debería funcionar como Jersey, no quiero entregar cosas, el controlador MVC debería estar envuelto con una capa de aspecto JSON (probablemente a través de anotaciones) que le permita enviar y recibir JSON. El proyecto Spring-JSON hace la mitad de eso (envío) pero no la otra mitad. – stevedbrown

4

No hay manera de pre-envasados ​​para hacer lo que desea como Jersey está muy bien integrado con la primavera a través de la API Jersey-Spring por lo que hay realmente ninguna razón para reinventar la rueda.

+0

Actualmente uso Jersey y es bueno. Para ser honesto, no creo que la integración de Spring sea tan convincente, lo cual no es realmente un gran problema. Al igual que Spring MVC versus Struts, no estoy esperando mucho cambio con la funcionalidad JSON de Spring Rest, solo estoy tratando de descubrir si realmente existe para poder probarlo. – stevedbrown

0

Parece que el marco DWR se parece mucho a lo que quiere obtener.

0

Puede configurar los interceptores Spring MVC a través de handler mappings y luego usar las asignaciones para transformar los datos de retorno a JSON. La configuración del controlador se puede hacer en xml (no es necesario volver a compilar), y esto puede ser completamente transparente para el resto de la aplicación.

Es bastante fácil anotar los controladores con alguna anotación, y luego conectar el proceso de arranque de BeanFactory para registrar los controladores dentro de algún proceso de asignación de controlador.

He utilizado este enfoque para transformar el resultado de los controladores de muelles en llamadas GWT RPC.

También puede usar Spring AOP para interceptar las llamadas al método del controlador y desenvolver/ajustar las solicitudes de/a JSON.

2

Desde Spring-mvc 3.0 se ofrece soporte oficial para Ajax remota con JSON como parte de Spring MVC.Esto incluye soporte para generar respuestas JSON y solicitudes JSON vinculantes utilizando el modelo de programación Spring MVC @Controller.

ver here

Cuestiones relacionadas