Entendiendo Un Diagrama de Secuencia Simple de Spring Boot
Imaginemos una aplicación simple que:
- Expone un endpoint REST API GET
/api/films/{filmId}. - Obtiene la información de películas de una base de datos.
Este diagrama muestra la vida de un único request en una aplicación Spring Boot estereotípica y sin adornos. Es el camino clásico desde el navegador del usuario hasta la base de datos y de vuelta.
-
Client: Es quien pide información (el navegador web del usuario, una app móvil, o incluso otro servicio backend). No sabe ni le importa cómo funciona el sistema; solo sabe que quiere una película, y está haciendo un
GETrequest a la URL que le dijeron que use. -
Spring MVC (
FilmController):- El
FilmControllervive dentro de la caja "Spring MVC" porque es parte de la capa web. Su trabajo es manejar requests HTTP. - Escucha requests entrantes en endpoints específicos (como
/api/films/{filmId}). Valida el request, lo desempaqueta, y luego delega el trabajo real a la capa de servicio. Debería mantenerse liviano; su rol principal es manejar tráfico web, no contener lógica de negocio.
- El
-
Spring Container (
FilmService&FilmRepository): El Spring Container es el corazón de tu app, manejando el ciclo de vida de tus beans.FilmService: Este es tu caballo de batalla. Contiene la lógica de negocio central. Toma el request del controller, orquesta los pasos necesarios para cumplirlo (como obtener datos), y puede realizar alguna lógica (como chequear permisos o transformar datos).FilmRepository: El único trabajo de este componente es hablar con la base de datos. Obtiene datos crudos y los devuelve. Separando esto, podrías cambiar tu base de datos de Postgres a MongoDB y solo tendrías que cambiar el repository, no tu lógica de negocio.
-
Database: La bóveda donde está toda tu data. Solo almacena y recupera datos cuando el
FilmRepositoryse lo pide.