- 1

¿Qué es Spring y por qué es tan popular?
01:49 - 2

Configuración inicial de proyecto Spring Boot con Java 21
07:00 - 3

Crear un endpoint REST con Spring Boot e integrarlo con IA usando LangChain4j
07:29 - 4

Configuración de application.properties y perfiles en Spring Boot
12:23 - 5

Arquitectura por capas orientada al dominio en Java
04:35 quiz de Introducción a Spring Boot
Arquitectura por capas orientada al dominio en Java
Clase 5 de 23 • Curso de Java Spring Boot
Contenido del curso
- 6

Conexión de Spring Boot con PostgreSQL usando Docker
10:36 - 7

Crear entidad con anotaciones JPA para tabla de base de datos
09:30 - 8

Repositorios CRUD con Spring Data sin escribir SQL
07:43 - 9

Creación de endpoints GET en Spring Boot para consultar películas
04:29 quiz de Persistencia con Spring Data y modelado de datos
- 10

Inyección de dependencias y contenedor IoC en Spring Boot
04:23 - 11

Separación de dominio y persistencia con DTOs en Java
08:55 - 12

Configuración de MapStruct con Spring para convertir entidades a DTO
09:26 - 13

Creación de conversores personalizados en MapStruct para enums y strings
10:01 - 14

Captura de parámetros con @PathVariable en Spring Boot
07:21 - 15

Códigos HTTP y Response Entity en APIs REST
06:52 quiz de Buenas prácticas en diseño de APIs
- 16

Crear endpoint POST para guardar películas en Spring Boot
10:20 - 17

Creación de endpoint PUT para actualizar películas en base de datos
11:50 - 18

Sistema de recomendaciones de películas con IA en Java
11:11 - 19

Control de excepciones con @RestControllerAdvice en Spring Boot
09:38 - 20

Validación automática de datos en APIs con Spring Boot
12:34 - 21

Documentación automática de APIs con OpenAPI en Spring Boot
10:52 - 22

Compilación de aplicación Java para producción con PostgreSQL
10:21 - 23

Despliegue de API Java con Docker en Render
10:20
Organizar correctamente un proyecto desde el inicio es crucial para asegurar la claridad, el mantenimiento y la escalabilidad de cualquier aplicación en crecimiento. En este material aprenderás paso a paso cómo establecer una estructura por capas, orientada al dominio, que mejora la responsabilidad y visibilidad del código en aplicaciones modernas.
¿Qué es una arquitectura de proyecto por capas y orientada al dominio?
Una arquitectura por capas divide la aplicación en distintas áreas de responsabilidad. Esto facilita tanto la legibilidad como el crecimiento del sistema. La orientación al dominio significa que el núcleo de la aplicación estará claramente definido, separando la lógica de negocio de otros componentes.
¿Cuáles son los paquetes principales y su función en esta organización?
- Dominio (domain): Aquí se sitúa todo el núcleo (core) de la aplicación. Contiene reglas y servicios de negocio esenciales.
-
Dentro del dominio, se recomienda crear a su vez un subpaquete
domain.servicepara las interfaces de servicios, comoPlatziAIService. -
Web: En este paquete se encuentra la capa encargada de recibir y procesar solicitudes externas, generalmente controladores.
-
Es útil agregar un subpaquete
web.controllerpara concentrar todos los controladores del proyecto, por ejemplo, la claseHelloController. -
Persistence: Aquí estará toda la comunicación con la base de datos, manejando el acceso y la persistencia de datos. Es común crear este paquete aunque inicialmente se encuentre vacío.
¿Cómo organizar las clases y archivos existentes según esta estructura?
- Mover los controladores: Ubica las clases controladoras, como
HelloController, dentro del subpaqueteweb.controller. - Organizar servicios de dominio: Arrastra las interfaces y servicios relevantes al subpaquete
domain.service. - Actualizar imports automáticamente: IDEs como IntelliJ ayudan a modificar los imports y referencias de paquetes cuando se reorganizan archivos.
- Mantener la clase ejecutora: La clase principal, como
PlatziPlay, debe quedar en la raíz del paquete base, ya que es responsable de lanzar la aplicación.
¿Qué ventajas tiene esta estructura al trabajar en equipo o en proyectos grandes?
- Separación clara de responsabilidades ayuda a que múltiples desarrolladores trabajen en paralelo sin interferir entre sí.
- Mejor mantenimiento y legibilidad, facilitando encontrar y modificar componentes específicos.
- Facilidad para escalar, ya que la organización permite agregar nuevas funcionalidades o modificar las existentes con menor riesgo de errores.
¿Cómo practicar y validar que la estructura funciona correctamente?
Una vez realizado el cambio de estructura:
- Modifica las rutas para que los controladores respondan en los endpoints deseados, como /hello en vez de la raíz (/).
- Lanza la aplicación y prueba en el navegador la nueva ruta para verificar el correcto funcionamiento.
¿Por qué elegir esta arquitectura versus otras?
No existe un único tipo de arquitectura "correcta" para todos los contextos. La elección depende del tipo de aplicación, el equipo, la infraestructura y necesidades específicas. La arquitectura por capas orientada al dominio, sin embargo, es ampliamente aceptada por su claridad y eficacia en aplicaciones medianas o grandes.
Ahora que tu proyecto tiene una base estructural sólida, el siguiente paso será conectar tu aplicación a una base de datos usando Docker y Postgres. Si te interesa profundizar más, también existen cursos especializados sobre arquitecturas en la misma plataforma. ¿Te gustaría compartir cómo estructuras tus proyectos o cuáles paquetes consideras imprescindibles?