/complete-spring-project

POC de proyecto Spring Boot 2 y Java 11 con varios frameworks, librerias y demás historias

Primary LanguageJavaApache License 2.0Apache-2.0

Build status

Proyecto montado con Spring Boot y Java 11, con los siguientes frameworks / libraries / funcionalidades:

  • Spring Boot: versión 2. posibilidad de arrancar directamente con el plugin de maven o generar un war para despliegue en tomcat o similar. Con 'actuator' activado.

  • Servicio completo RESTful con Spring 5 (Books)

  • Uso de HATEOAS en el servicio

  • Documentado servicio con Swagger 2 (Springfox)

  • Capa de base de datos con Spring DATA mongoDB

  • Jacoco para la cobertura de tests (plugin para maven)

  • Lombok para evitar código 'boilerplate'

  • Spring Exception Handling en los controllers

  • Validaciones en los entities, y envío de errores

  • Test de integración completos (mockeando el service)

  • Logs, con slfj4/logback configurados para escribir a fichero

  • Spring Security activo, con autenticación básica

  • Añadidas las developer tools de Spring Boot 2

  • Uso de flapdoodle para simular la base de datos en los tests de integración

Requisitos:

  • Maven (instalado y configurado)

  • mongoDB server (instalado y arrancado, en localhost y con el puerto por defecto)

Comandos

  • Arrancar directamente con el plugin de SpringBoot:

    mvn spring-boot:run
    
  • Generar war, ejecutando test unitarios (así como generar informes de jacoco):

    mvn clean package
    
  • Generar war, ejecutando solo test de integración:

    mvn clean verify -P integration-test
    

Usuarios de acceso:

  • Usuario para acceso a servicios rest (/api/*) -> user1 : password1

  • Usuario para acceso a administración (/actuator/*) -> admin : password1234

Urls de acceso:

Fuentes: