Hola amigos, como sabemos los JSON son la mejor forma de comunicar el back-end con el front-end, los programadores java como yo tenemos que ocupar ciertas librerías para realizar una conversión fácil.
Pero en objetos complejos y con un gran numero de atributos se vuelve tedioso, por eso spring mvc, que fue hecho por los mimos dioses y regalado a los humanos para facilitarnos la vida, nos salvo de estos problemas.
Spring mvc es un moustro que tiene un gran numero de cabezas y hoy solo veremos un pelo de una de las cabezas.
El proyecto lo realice con maven y spring mvc, ocupare intellij IDEA 13.1
REQUERIMIENTOS MINIMOS:
1.-GANAS
2.-GANAS
3.-GANAS
Esta realizado con maven por lo cual necesitamos de las siguientes librerías:
- spring-core
- spring-web
- spring-webmvc
- jackson-mapper-asl
Una vez agregado las dependencias es hora de configurar spring, en nuestro archivo web.xml, para realizar los despachos pondré el contexto rest aunque ustedes lo pueden modificar con cualquier otro.
También es importante agregar el archivo xml de spring
En nuestro archivo mvc-dispatcher-servlet.xml agregaremos lo siguiente:
Y listo a programar como dios ha dicho, en este ejemplo me basare en un inventario el cual esta compuesto por otro objeto que es tipo de inventario, por ese motivo tendremos 2 clases con diferentes atributos:
No tenemos que poner anotaciones ni implementarlo con la serialización solo es necesario poner como privado los atributos y realizar los métodos set() y get(), una vez creados es hora de realizar la acción.
Para este ejemplo realizare 2 métodos uno que no reciba parámetros y regrese una lista y otro que reciba un parámetro y recupere un objeto.
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import java.util.ArrayList; import java.util.List; @Controller @RequestMapping("/kfc/brands") public class JSONController { @RequestMapping(value = "{id}", method = RequestMethod.GET) public @ResponseBody Inventario getIdInventario(@PathVariable int id) { TipoInventario tipoInventario=new TipoInventario(); tipoInventario.setIdTipo(3); tipoInventario.setDescripcion("HOGAR"); Inventario inventario=new Inventario(); inventario.setTipoInventario(tipoInventario); inventario.setDescripcion("ESTANTES PARA EL BAÑO"); inventario.setIdInventario(3); return inventario; } @RequestMapping(method = RequestMethod.GET) public @ResponseBody ListgetListInventario() { return getInventarios(); } /*Método para llenar la lista de inventarios*/ public List getInventarios(){ //Primer Objeto TipoInventario tipoInventario=new TipoInventario(); tipoInventario.setIdTipo(1); tipoInventario.setDescripcion("LINEA BLANCA"); Inventario inventario=new Inventario(); inventario.setTipoInventario(tipoInventario); inventario.setDescripcion("ESTUFA"); inventario.setIdInventario(1); //Segundo Objeto TipoInventario tipoInventario2=new TipoInventario(); tipoInventario2.setIdTipo(2); tipoInventario2.setDescripcion("ELECTRONICA"); Inventario inventario2=new Inventario(); inventario2.setTipoInventario(tipoInventario2); inventario2.setDescripcion("COMPUTADORA"); inventario2.setIdInventario(2); Listinventarios=new ArrayList (); inventarios.add(inventario); inventarios.add(inventario2); return inventarios; } }
Por ultimo levantamos nuestra aplicación y lo probamos:
Para el primer ejemplo solo es cuestión de acceder a la url:
Y para el siguiente ejemplo es necesario agregar un parámetro
Como vemos en los recuadros rojos lo que nos responde es un objeto JSON por medio de GET, espero que les aya servido y estaré agregando más post de spring, saludos javeros
Publicar un comentario