Este proyecto explora el uso de programación reactiva con Spring WebFlux, implementando operaciones CRUD en una base de datos y mostrando datos dinámicamente en el front-end con Thymeleaf. Incluye herramientas modernas para configuraciones personalizadas y un flujo CI/CD básico utilizando Jenkins.
- Descripción
- Características
- Requisitos Previos
- Instalación
- Ejecución
- Dockerización
- CI/CD con Jenkins
Este proyecto está diseñado para demostrar cómo realizar operaciones CRUD de manera reactiva con Spring WebFlux. Incluye un enfoque en el desarrollo de front-end dinámico con Thymeleaf, configuraciones personalizadas utilizando Configuration Processor y una integración continua simple con Jenkins.
- Programación Reactiva: Uso de Spring WebFlux para manejar solicitudes asíncronas y no bloqueantes.
- Operaciones CRUD: Interacción reactiva con la base de datos para crear, leer, actualizar y eliminar registros.
- Thymeleaf: Plantillas dinámicas para renderizar datos reactivos en tiempo real.
- Configuraciones Personalizadas: Uso de Configuration Processor para gestionar y validar configuraciones.
- Dockerización: Contenedores Docker para la aplicación, base de datos y Jenkins.
- CI/CD: Pipeline de Jenkins para probar y desplegar el código.
- Java: JDK 17 o superior.
- Maven: Para construir el proyecto.
- Docker: Para ejecutar los contenedores.
-
Clona el repositorio:
git clone https://github.com/pazteddy/reactive-programming.git cd reactive-programming
-
Construye el proyecto con Maven:
mvn clean install
-
Inicia la base de datos y la aplicación con Docker Compose:
docker-compose up -d
-
Accede a la aplicación en tu navegador:
http://localhost:8080
-
Navega por las operaciones CRUD y observa cómo los datos se actualizan dinámicamente.
Este proyecto incluye un archivo docker-compose.yml
para levantar los siguientes servicios:
- Aplicación: La aplicación Spring Boot.
- Base de datos: Configurada para operaciones CRUD.
- Jenkins: Servidor de integración continua para probar y desplegar el proyecto.
- Para detener los servicios:
docker-compose down
- Para reconstruir imágenes:
docker-compose build
El proyecto incluye un Jenkinsfile
con los pasos para:
- Construcción: Compila y empaqueta la aplicación con Maven.
- Pruebas: Ejecuta pruebas unitarias y de integración.
- Despliegue: Levanta los servicios en un entorno Docker.
-
Instala Jenkins en tu máquina o utiliza un contenedor Docker:
docker run -p 8081:8080 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
-
Crea un pipeline apuntando al repositorio de este proyecto.
-
Configura las credenciales necesarias para acceder al repositorio y Docker.