En esta página:
Demo
En la Parte anterior llamada Como crear un CRUD con Spring Framework 5.2.13 y Bootstrap 4.6 – Parte 3, creamos nuestro controlador, un elemento muy importante para que se puedan realizar las tareas CRUD (Create, Read, Update y Delete) en nuestra aplicación, asimismo creamos una interface de servicio para la misma. En esta Parte 4 vamos a crear un repositorio y un servicio para este proyecto, vamos con ello.
Partes
Antes de continuar con este Post, te invito a leer los siguientes artículos:
- Que es Spring Framework y Otros Detalles
- 5 Consejos para escribir Controladores Spring MVC
- Como funciona la anotación @Value en Spring
- Cual es la diferencia entre Spring (Framework) y Spring Boot
- Como Crear Nuestra Primera Aplicación Básica con Spring Framework – Parte 1
- Puedes leer más en la categoría Spring
Asimismo, te invito a escuchar el Podcast: “¿ Que Hago Si No Tengo Los Recursos Para Dedicarme A La Programación ?” y “5 Habilidades que Debe Tener un Desarrollador Backend” (Anchor Podcast):
Spotify: | Sound Cloud: | Apple Podcasts | Anchor Podcasts |
Bien ahora continuemos con el Post: Como crear un CRUD con Spring Framework 5.2.13 y Bootstrap 4.6 – Parte 4.
Repositorio
Vamos a crear un repositorio, el cual, de manera general, tiene como objetivo, reducir significativamente la cantidad de código repetitivo necesario para implementar capas de acceso a datos para varios almacenes de persistencia.
Creo un directorio llamado Repositories y dentro de el creo el archivo InterfacePostre.java en sistemacrud > src > main > java > com > sistemacrud > sistemacrud > Repositories > InterfacePostre.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/sistemacrud ├── /.mvn ├── /src ├── /main ├── /java ├── /com ├── /sistemacrud ├── /sistemacrud ├── /Controller ├── /InterfaceService ├── /Model ├── /Repositories // Creo este directorio ├── InterfacePostre.java // Creo y Abro este Archivo ├── SistemacrudApplication.java ├── /target ├── .gitignore ├── HELP.md ├── mvnw ├── mvnw.cmd ├── porn.xml |
Abro el archivo InterfacePostre.java y dentro de el agrego lo siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 |
package com.sistemacrud.crudspringboot.Repositories; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; import com.sistemacrud.crudspringboot.Model.Postre; @Repository public interface InterfacePostre extends CrudRepository<Postre, Integer> { // } |
El código anterior delrepositorio es sencillo, pero muy potente para nuestro sistema CRUD. Ahora pasemos a crear nuestro servicio.
Servicio
Un servicio se usa para construir una clase de servicio que conecta a varios repositorios y agrupa su funcionalidad. Por ejemplo si contamos con dos repositorios uno con Autores y otro con Libros podriamos crear una clase Facade de tipo ServicioLibreria que reuna la funcionalidad de las dos capas de Repositorio .
Entonces creo un directorio llamado Service y dentro de el creo el archivo PostreService.java en sistemacrud > src > main > java > com > sistemacrud > sistemacrud > Service > PostreService.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/sistemacrud ├── /.mvn ├── /src ├── /main ├── /java ├── /com ├── /sistemacrud ├── /sistemacrud ├── /Controller ├── /InterfaceService ├── /Model ├── /Repositories ├── /Service // Creo este directorio ├── PostreService.java // Creo y Abro este Archivo ├── SistemacrudApplication.java ├── /target ├── .gitignore ├── HELP.md ├── mvnw ├── mvnw.cmd ├── porn.xml |
Abro el archivo PostreService.java y empiezo haciendo las siguientes importaciones y creo mi clase PostreService{}.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package com.sistemacrud.sistemacrud.Service; import java.util.List; import java.util.Optional; import com.sistemacrud.sistemacrud.InterfaceService.InterfacePostreService; import com.sistemacrud.sistemacrud.Repositories.InterfacePostre; import com.sistemacrud.sistemacrud.Model.Postre; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class PostreService implements InterfacePostreService { // Acá va el código } |
Paso seguido instanciamos nuestro repositorio InterfacePostre, el cual creamos anteriormente en este Parte 4 del tutoria. La asignamos como data.
Debajo creamos unos métodos importantes para que el sistema CRUD realize determinadas tareas sin problemas. He colocado comentarios en el código para explicar que hace cada método.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
package com.sistemacrud.sistemacrud.Service; import java.util.List; import java.util.Optional; import com.sistemacrud.sistemacrud.InterfaceService.InterfacePostreService; import com.sistemacrud.sistemacrud.Repositories.InterfacePostre; import com.sistemacrud.sistemacrud.Model.Postre; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class PostreService implements InterfacePostreService { // Instanciamos nuestro repositorio @Autowired(required = false) private InterfacePostre data; // Método para listar todos los registros en la vista 'index.html' @Override public List < Postre > listar() { return (List < Postre > ) data.findAll(); } // Método para listar los datos de un registro en la vista 'leer.html' @Override public Optional < Postre > leer(int id) { return this.data.findById(id); } // Método para mostrar los datos de un registro en la vista 'actualizar.html' @Override public Optional < Postre > getId(int id) { return this.data.findById(id); } // Método para guardar un registro mediante la vista 'crear.html' @Override public int save(Postre p) { int response = 0; Postre Postre = data.save(p); if (!Postre.equals(null)) { response = 1; } return response; } // Método para eliminar un registro desde la vista 'index.html' @Override public void delete(int id) { this.data.deleteById(id); } } |
Bueno, hasta aquí llegamos con esta 4ta parte del tutorial en donde hemos creado nuestro Repositorio y luego un Servicio que contiene determinado métodos indispensable que los usamos en nuestro Controlador.
Ten Paciencia, lo que quiero es que conozcas bien como se crea este proyecto y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje.
Nota (s)
- En la siguiente parte y última vamos a crear nuestras vistas HTML y realizaremos algunas configuraciones adicionales, veremos algunos puntos técnicos importantes de conocer y tendremos una Demo junto el código fuente del proyecto (GitHub).
- Los pasos mencionados en este tutorial pueden cambiar en un futuro, esto no depende de mi, si no de la organización que da soporte a Spring Framework, que suele cambiar el orden y las opciones de su herramienta.
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.