Aplicación Todo con Spring Boot MVC y Thymeleaf

En este artículo explico paso a paso cómo construir una aplicación Todo usando Spring Boot MVC y Thymeleaf, con almacenamiento en memoria H2 y seguridad básica con Spring Security. La idea es crear una app sencilla donde cada usuario tiene su propia lista de tareas.
Paso 1 Configuración inicial. Crea un proyecto Spring Boot con Spring Initializr o desde IntelliJ y añade las dependencias principales spring-boot-starter-web para controladores MVC, spring-boot-starter-thymeleaf para plantillas HTML, spring-boot-starter-data-jpa para persistencia, la base de datos H2 para desarrollo y spring-boot-starter-security para autenticación y autorización.
Paso 2 Propiedades de la aplicación. En src/main/resources/application.properties activa la consola H2 y configura la URL jdbc h2 mem todoapp. También puedes activar spring jpa show sql para ver las consultas y spring jpa hibernate ddl auto update para que JPA cree las tablas desde las entidades.
Paso 3 Modelo Todo. Crea una entidad Todo con campos id autogenerado, title, completed por defecto false y username que identifica al propietario de la tarea. El campo username garantiza que cada usuario solo vea sus propios todos.
Paso 4 Repositorio. Define una interfaz TodoRepository que extienda JpaRepository y añade un método personalizado findByUsername para obtener las tareas de un usuario concreto. Con JpaRepository obtienes de forma automática métodos CRUD como save findById y deleteById.
Paso 5 Seguridad. Configura Spring Security con un SecurityFilterChain que requiera autenticación para todas las rutas excepto los recursos estáticos y que use una página de login personalizada en /login. Para un entorno de demo puedes registrar usuarios en memoria con InMemoryUserDetailsManager y usar un PasswordEncoder sencillo solo para pruebas. En producción sustituye por un proveedor seguro y almacenamiento persistente de usuarios.
Paso 6 Controlador. Implementa un controlador TodoController con rutas para listar los todos del usuario autenticado, añadir una nueva tarea asignando el username desde el objeto Authentication, alternar el estado completed y eliminar tareas. Después de cada operación redirige a la lista de todos para que la vista se actualice.
Paso 7 Plantillas Thymeleaf. Crea una plantilla login para el formulario de acceso y una plantilla todos que muestre un formulario para añadir tareas y una tabla con todas las tareas del usuario. Usa enlaces form action apuntando a las rutas del controlador y botones para alternar y borrar. Incorpora estilos con Bootstrap cargando el CSS en la plantilla.
Paso 8 Ejecutar y probar. Ejecuta la app con mvn spring-boot run y abre el navegador en localhost 8080 login. Inicia sesión con las credenciales definidas en memoria y prueba a añadir alternar y borrar tareas. H2 guarda los datos en memoria por lo que se reiniciarán al reiniciar la aplicación.
Resumen del flujo. El usuario accede a la página de login. Spring Security valida las credenciales y redirige a la lista de todos. El controlador consulta el repositorio por username y Thymeleaf renderiza la vista con Bootstrap. H2 facilita el desarrollo y JPA se encarga del mapeo objeto relacional.
Sobre Q2BSTUDIO. En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida que ofrece soluciones personalizadas para empresas de todos los tamaños. Nos especializamos en software a medida y aplicaciones a medida, inteligencia artificial aplicada a procesos empresariales, ciberseguridad y servicios cloud. Si buscas desarrollar una aplicación corporativa a medida consulta nuestra página de desarrollo de aplicaciones y software multiplataforma en desarrollo de aplicaciones y software multiplataforma. Para proyectos que requieran modelos de IA, agentes inteligentes o ia para empresas visita nuestra sección de inteligencia artificial.
Palabras clave y servicios. Ofrecemos servicios cloud aws y azure, servicios de inteligencia de negocio y power bi, automatización de procesos, agentes IA y consultoría en ciberseguridad y pentesting para proteger tus aplicaciones. Si necesitas una solución completa que combine software a medida, inteligencia artificial y seguridad, Q2BSTUDIO puede acompañarte desde el diseño hasta la puesta en producción.
Consejos finales. Para un producto listo para producción cambia la base de datos H2 por una base de datos persistente, usa un gestor de usuarios y contraseñas seguro, aplica validación y control de acceso en el backend y añade pruebas automatizadas. Con estas mejoras podrás escalar la aplicación Todo hacia una solución empresarial.
Comentarios