API REST con Spring Boot | 9 | Repositorios y Servicios Genéricos

API REST con Spring Boot | 9 | Repositorios y Servicios Genéricos

Implementación de Generix en Proyecto

Resumen de la Sección: En esta sección, se aborda la implementación de generix en un proyecto a través de la creación de repositorios genéricos y la adaptación de servicios para hacer uso de estos repositorios.

Creación de Repositorios Genéricos

  • Se inicia creando un nuevo repositorio genérico mediante una nueva interfaz llamada BaseRepository.
  • Se utiliza la anotación @NoRepositoryBean para evitar que se puedan crear instancias del repositorio base.
  • El BaseRepository recibe dos tipos: el tipo entidad (que extiende de Base) y el tipo ID (que extiende de Serializable).
  • La interfaz extiende tanto JpaRepository como JpaSpecificationExecutor.

Modificación del Personal Repository

  • Se modifica el personal repository para que ahora extienda de BaseRepository.
  • Se elimina la importación anterior y se ajusta la extensión del personal repository.

Implementación del Repositorio Autor

  • Se crea el repositorio para autor, extendiendo también de BaseRepository, pero con el tipo autor.

Mejora en los Servicios Base

  • Los servicios base ahora deben extender también de una clase base y recibir el tipo entidad y el tipo ID.
  • Para hacerlos más genéricos, se incluye que el tipo ID debe ser serializable.

Implementación Genérica del Servicio

  • Debido a cambios en los métodos, se plantea una implementación abstracta genérica del servicio.
  • Esta implementación abstracta permitirá heredar métodos sin necesidad de implementarlos nuevamente en cada servicio específico.

Adaptaciones Finales en los Servicios

  • Se instancia un repositorio base dentro del servicio e implementa los métodos necesarios.

Desarrollo de Servicios en Java - Parte 2

Resumen de la Sección: En esta sección, se aborda el desarrollo de servicios en Java, centrándose en la creación de clases y métodos específicos para diferentes modelos.

Creación de Clases y Métodos Específicos

  • Se crea una nueva clase llamada "AutorService" dentro del paquete.
  • La clase recibe la anotación @Service para indicar que es un servicio y extiende de BaseServiceImplementation con los tipos autor.
  • Se procede a crear el constructor solicitado y realizar una instancia con Autowired.
  • La estructura genérica de los servicios incluye una interfaz genérica, una implementación abstracta y servicios específicos para cada modelo.
  • Los métodos comunes a todo el modelo se encuentran en la interfaz, permitiendo reutilizar las clases en distintos proyectos.

Implementación Específica por Modelo

  • Se crea una interfaz para "PersonasService" donde se declaran los métodos específicos para este servicio.
  • La clase se renombra a "ImplementacionPersonasServices" para reflejar su implementación con claridad.

Ampliando a Otros Modelos

  • Se crea la interfaz "AutorService" que extiende de BaseService con los tipos autor.
  • Esta interfaz será utilizada posteriormente al crear queries en la aplicación.

Finalización del Módulo de Servicios

Resumen de la Sección: En esta parte, se concluye con la implementación de interfaces para los servicios relacionados con autores y personas.

Implementación Final

  • Se finaliza la implementación de las interfaces "AutorService" y "PersonasService".