Creación de Aplicaciones Autocontenidas con SpringBoot
Clase 6 de 35 • Curso de Java Spring
Contenido del curso
- 10

Conceptos básicos de JPA y anotaciones en Java
03:04 - 11

Gestión de Bases de Datos con Spring Data JPA en Java
05:24 - 12

Conexión y Configuración de Base de Datos en Spring Boot
12:09 - 13

Mapeo de Tablas a Clases con JPA: Creación de Entities en Java
14:00 - 14

Creación de Entities con Clave Primaria Compuesta en JPA
06:49 - 15

Relaciones JPA: Categorías, Productos, Compras y Clientes
10:37 - 16

Repositorios de Spring Data: Gestión Eficiente de Bases de Datos
07:54 - 17

Consultas avanzadas con Query Methods en Spring Data
09:30
- 18

Clase de Repositorio de Productos con Spring Framework
05:19 - 19

Patrón DataMapper en Proyectos Java: Implementación y Beneficios
13:37 - 20

Creación de Mapeadores con MapStruct en Java
11:22 - 21

Repositorio de Productos Orientado al Dominio en Java
09:27 - 22

Inyección de Dependencias en Spring Framework
04:34 - 23

Implementación de Servicios de Dominio en Java con Spring Framework
09:12 - 24

Creación de Controlador REST en Spring Boot
07:14 - 25

Anotaciones Spring para Exponer APIs RESTful
09:25
- 26

Control de Respuestas HTTP con ResponseEntity en Spring
09:11 - 27

Modelado de Dominio para Gestión de Compras en Supermercados
05:27 - 28

Mapeadores en Java para Conversión de Compras y Productos
10:45 - 29

Implementación de Repositorio en Java para Compras en Supermercado
09:01 - 30

Pruebas de API de Compras con Postman
02:56 - 31

Documentación de APIs con Swagger en Spring Boot
12:55
¿Qué es una aplicación autocontenida y cómo se relaciona con SpringBoot?
Hoy día, las tendencias en desarrollo de aplicaciones nos llevan hacia modelos más ágiles y modulares, dejando atrás las grandes arquitecturas monolíticas. Antes, las aplicaciones empresariales solían desplegarse en un servidor único que gestionaba configuraciones, bases de datos, y servicios externos. Este enfoque puede tener sus ventajas, pero también complica el despliegue y mantenimiento.
Ventajas de una arquitectura modular
Las arquitecturas modernas optan por dividir una gran aplicación en pequeños servicios o microservicios independientes que colaboran entre sí. Entre las ventajas de este enfoque, se destacan:
- Facilidad de desarrollo: Cada microservicio se desarrolla como una pequeña aplicación autocontenida.
- Mantenimiento sencillo: Las actualizaciones se llevan a cabo en módulos específicos sin afectar a toda la aplicación.
- Escalabilidad: Los servicios pueden escalarse de forma independiente según su demanda específica.
Spring Boot y su función
Spring Boot surge como la solución ideal para construir aplicaciones autocontenidas. A diferencia de otros proyectos del ecosistema Spring, Spring Boot permite olvidar la configuración complicada del servidor de aplicaciones para enfocarnos en escribir el mejor código posible.
Para lograrlo, Spring Boot incluye un servidor de aplicaciones embebido, siendo Apache Tomcat su opción por defecto, pero también permite usar Jetty o Undertow. Además, Spring Boot ofrece:
- Gestor de dependencias: Opciones como Maven o Gradle para manejar las dependencias del proyecto.
- Configuraciones automáticas: Adaptaciones de la aplicación de manera automática según las necesidades del desarrollador.
¿Cómo inicio mi proyecto con Spring Initializer?
Spring Initializer es una herramienta oficial de Spring para crear aplicaciones autocontenidas rápidamente y con las configuraciones necesarias desde el inicio. Aquí algunos pasos para empezar tu proyecto:
Configuración inicial
- Tipo de proyecto: Elige entre Maven o Gradle. Gradle es preferido por algunos desarrolladores por su posibilidad de crear tareas ejecutables.
- Lenguaje: Aunque Spring Boot soporta Groovy y Kotlin, Java suele ser la elección más común por su estabilidad y popularidad.
- Versión de Spring Boot: Es crucial usar una versión estable; actualmente, se recomienda la versión 2.3.1.
- Detalles del proyecto: Define el grupo, el artefacto, y el nombre del paquete para evitar duplicidades.
Selección de dependencias
Al elegir las dependencias iniciales, considera:
- Spring Web: Essential para crear APIs RESTful usando Apache Tomcat como contenedor.
- Otras dependencias: A medida que tu proyecto evolucione, podrás añadir otras necesarias directamente en el archivo
build.gradle.
Descarga y descomprime el proyecto
Una vez configurado todo, Spring Initializer genera un archivo .zip que contiene la estructura del proyecto:
- Archivos básicos: Incluyen
.gitignore,HELP.md, ybuild.gradle. - Estructura del proyecto: Carpeta
srcque contienemainpara el código de la aplicación ytestpara pruebas.
¿Cómo interpreto la estructura generada?
Al descomprimir el archivo generado, notarás la siguiente estructura importante:
Archivo build.gradle
Es el corazón de tu gestión de dependencias. Aquí defines:
- Plugin y versión: Los plugins que utilizarás y la versión de Java.
- Repositorios: De dónde se obtendrán las dependencias.
- Dependencias y testing: Toda dependencia necesaria para el correcto funcionamiento y pruebas de la aplicación.
Carpeta src
Esta es la sección donde vivirán tus archivos de código fuente:
- main/java: Contendría el paquete de clases Java, incluyendo la clase principal con el método
main. - resource/application.properties: Archivo donde especificarás configuraciones personalizadas para tu aplicación.
Con esta guía, estás listo para sumergirte en el mundo del desarrollo ágil y modular con Spring Boot. Te invito a seguir aprendiendo y experimentar con esta poderosa herramienta que en poco tiempo se convertirá en uno de tus recursos favoritos en el desarrollo de aplicaciones. ¡A programar!