Este proyecto es una aplicación Spring Boot que implementa un sistema de gestión de tareas (To-Do List). Demuestra la aplicación de conceptos fundamentales de Spring Boot como la inyección de dependencias, estereotipos, configuración mediante application.properties y gestión de diferentes entornos con profiles.
La aplicación permite:
- Crear, listar, buscar y eliminar tareas.
- Marcar tareas como completadas.
- Obtener estadísticas sobre el estado de las tareas.
- Adaptar su comportamiento y configuración según el entorno (desarrollo o producción).
- Java: Versión 17+
- Spring Boot: Versión 3.x
- Maven: Herramienta de gestión de proyectos.
- Lombok: Librería para reducir código boilerplate (getters, setters, constructores, etc.).
-
Clonar el repositorio:
git clone https://github.com/JereBon/tpFundamentosSpringboot.git cd tareas -
Compilar el proyecto (usando Maven Wrapper):
./mvnw clean install
-
Ejecutar la aplicación:
./mvnw spring-boot:run
O, si ya compilaste:
java -jar target/tareas-0.0.1-SNAPSHOT.jar
La aplicación está configurada para usar perfiles de Spring Boot (dev y prod). Por defecto, el perfil activo es dev (definido en application.properties).
Para ejecutar la aplicación con un perfil específico, puedes usar la propiedad spring.profiles.active:
-
Perfil de Desarrollo (
dev):./mvnw spring-boot:run -Dspring-boot.run.profiles=dev
O:
java -jar target/tareas-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
-
Perfil de Producción (
prod):./mvnw spring-boot:run -Dspring-boot.run.profiles=prod
O:
java -jar target/tareas-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
Observa cómo cambian los mensajes de bienvenida/despedida, el límite máximo de tareas y la visibilidad de las estadísticas según el perfil activo.
Durante el desarrollo de este proyecto, he consolidado mi comprensión sobre:
- La importancia de la inyección de dependencias por constructor para un código más limpio y testeable.
- El uso efectivo de estereotipos de Spring (
@Repository,@Service) para organizar la arquitectura de la aplicación. - La flexibilidad que ofrece la configuración externa con
application.propertiesy la inyección de valores con@Value. - La potencia de los perfiles de Spring (
@Profile) para adaptar el comportamiento de la aplicación a diferentes entornos sin modificar el código base, lo cual es crucial en entornos profesionales. - La implementación de
CommandLineRunnerpara ejecutar lógica al inicio de la aplicación, útil para inicializar datos o realizar tareas de configuración.
Este trabajo práctico ha sido fundamental para aplicar y entender cómo estos conceptos se integran para construir aplicaciones Spring Boot robustas y mantenibles.
- Nombre: Jeremias Bontorno Pontis
- Legajo: 52606

