Spring boot tutorial para principiantes

Spring boot Inicio

Spring Boot pretende simplificar la creación de nuestro proyecto y en este tutorial para principiantes aprenderás a programar un ejemplo.

Creación del proyecto Spring Boot

En nuestro ejemplo de Spring Boot nuestro microservicio obtendrá la información de una base de datos H2(Mas adelante se explicara que es H2) y la mostrara al usuario en formato JSON. Para ello vamos a acceder a la base de datos desde una llamada get y este obtendrá la información por medio de JPA.

Primero creamos el proyecto eligiendo New Spring Starter Proyect.

Spring boot

Después debemos elegir las dependencias necesarias para este proyecto.

Podemos notar que es un proyecto Web y que las librerías de H2 y JPA están presentes en el.

Spring boot select dependencies

Codificación del Microservicio

Ahora que tenemos el proyecto vamos a crear la estructura de carpetas para respetar la arquitectura MVC.

Image for post

Dentro de entitys vamos a crear la estructura de la tabla que vamos a consultar en nuestro servicio.

El mapeo se realiza como se haría usando cualquier otra base de datos.

  • @Entity
  • @Table

Indican que esa clase es una entidad y a que tabla apunta esta entidad.

  • @Id
  • @GenerateValue

Determinan el comportamiento de la llave primaria de la tabla a la que se apunta

  • @Column

Esta anotación puede omitirse pero si el nombre del campo en la base de datos es diferente al nombre de la entidad es necesario indicarlo con esta anotación.

Para poder leer la entidad vamos a crear el acceso a datos. Spring boot nos proporciona la Interfaz CrudRepository. Ella define como su nombre lo dice todo lo necesario para hacer un CRUD a una entidad.

Ahora creamos una nueva interfaz y heredamos de ella de la siguiente manera.

Creamos la interfaz del servicio y agregamos la definición del método para conectar con el dao y creamos la implementación.

En la clase anterior inyectamos la instancia TaskDao para poder llamar al método findAll(), que como podrán notar jamas codificamos este método. Este método findAll nos lo proporciona la interfaz Crudrepository.

Para completar el servicio web creamos el RestController

  • @RestController

Indica que nuestra clase estará expuesta para su acceso

  • @RequestMapping
  • Pone la raíz para la URI a acceder al servicio Rest
  • @GetMapping

Esta anotación indica que tipo de metodo es Get y coloca el resto de la URI

Base de datos H2

H2 es un sistema de administrador de base de datos relacionales hecho con Java creado principalmente para entornos de desarrollo.

Esto quiere decir que no reemplaza de ninguna manera a MySQL, SQL Server u Oracle que deberán seguir siendo usados en ambientes productivos.

El propósito de H2 es agilizar el proceso de desarrollo. H2 puede crear la estructura de las tablas basándose en nuestras entitys JPA Cargar datos iniciales para nuestras pruebas, nos permitirá hacer transacciones CRUD como cualquier otra base datos con la diferencia que serán temporales, es decir los datos regresaran al estado original respetando el script inicial de carga.

Carga de datos con H2

Como mencionamos al principio H2 puede cargar los datos automáticamente desde un Script en el momento que la aplicación se levanta. Para que funcione solo debe de ser colocado en los resources con el nombre data.sql .(En versiones mas recientes, la carga se hace antes de la creacion de tablas por Hibernate lo que podria ocacionar errores)

Prueba

Levantamos el servicio y accedemos al navegador a la siguiente URL http://localhost:8080/todolist/tasks y deberá mostrarnos algo similar a esto.

JSON get method

H2 también nos brinda una consola con la cual podemos visualizar la información como lo haríamos con cualquier otro cliente de base de datos.

Para acceder a esta consola escribimos en el navegador la siguiente dirección http://localhost:8080/h2-console/ .

H2 Console

En nuevas versiones de la librería de H2 podrían necesitar declarar explícitamente su uso en las properties del proyecto.

application properties

Podemos hacer un query para ver la información. Incluso podemos hacer un nuevo Insert y revisar la información dentro del navegador llamando a nuestro microservicio.

insert into task (description,status,creation_date)values('buy a new computer',0,NOW());

JSON get method

Pero ¿Que pasa si detenemos el servicio, lo volvemos a correr? Hagamos un query a la tabla con la consola. Ahora ya no esta el registro que hicimos hace un momento mediante la consola.

H2 console

De esta manera observamos el funcionamiento de la base de datos temporal.

Conclusión

Con este tutorial de Spring Boot para principiantes sabes el funcionamiento de H2 y puedes crear los métodos que faltan para completar el CRUD.


0 Shares:
You May Also Like