Antes de empezar
¿Qué es y qué usaremos de Spring?
¿Java sigue siendo gratuito?
Instalación de ambiente de desarrollo: Windows
Instalación de ambiente de desarrollo: Linux Ubuntu
Instalación de ambiente de desarrollo: macOS
Introducción a Spring boot
Creando aplicaciones autocontenidas con Spring Initializr
Hola mundo con Spring Boot
Configurar Spring Boot
Crear la estructura del proyecto
Spring Data
¿Qué es JPA?
Conocer qué es Spring Data
Conectar la base de datos a nuestra aplicación
Mapear las tablas como clases
Crear Entity cuando su clave primaria es compuesta
Mapear relaciones entre clases
Usar la interface CrudRepository
Query Methods
Construyendo nuestra API
Implementar la anotación @Repository
¿Qué es el patrón Data Mapper y qué resuelve?
Orientar nuestra API al dominio con MapStruct
Orientar nuestro repositorio a términos del dominio
Inyección de dependencias
Implementar la anotación @Service
Implementar la anotación @RestController
Exponer nuestra API
Mejorando nuestra API
Controlar las respuestas HTTP
Crear el dominio de compras
Mapear el dominio de compras
Crear el repositorio de compras
Probando nuestros servicios de compras
Documentar nuestra API con Swagger
Despliegue de nuestra aplicación
Desplegar nuestra API desde la ventana de comandos
Desplegar nuestra base de datos con Heroku
Desplegar nuestra API con Heroku
Conclusiones y despedida del curso
You don't have access to this class
Keep learning! Join and start boosting your career
Today, trends in application development are leading us towards more agile and modular models, leaving behind large monolithic architectures. In the past, enterprise applications used to be deployed on a single server that managed configurations, databases, and external services. This approach can have its advantages, but it also complicates deployment and maintenance.
Modern architectures choose to divide a large application into small independent services or microservices that collaborate with each other. Among the advantages of this approach, the following stand out:
Spring Boot emerges as the ideal solution for building self-contained applications. Unlike other projects in the Spring ecosystem, Spring Boot allows you to forget about complicated application server configuration and focus on writing the best possible code.
To achieve this, Spring Boot includes an embedded application server, being Apache Tomcat its default choice, but it also allows to use Jetty or Undertow. In addition, Spring Boot offers:
Spring Initializer is an official Spring tool to create self-contained applications quickly and with the necessary configurations from the beginning. Here are some steps to start your project:
When choosing initial dependencies, consider:
build.gradle
file.Once everything is configured, Spring Initializer generates a .zip
file containing the project structure:
.gitignore
, HELP.md
, and build.gradle
.src
folder containing main
for the application code and test
for testing.When you unzip the generated file, you will notice the following important structure:
This is the heart of your dependency management. Here you define:
This is the section where your source code files will live:
main
method.With this guide, you are ready to dive into the world of agile and modular development with Spring Boot. I invite you to continue learning and experimenting with this powerful tool that will soon become one of your favorite resources in application development. Let's get to programming!
Contributions 39
Questions 10
Excelente esta renovación del curso, el anterior dejo mucho que desear
Hasta hace algún tiempo las aplicaciones web empresariales lucias como el grafico de la izquierda, teníamos un servidor de aplicaciones que contenían su configuración donde van configuración de bases de datos, servicios externos, variables, etc. allí también ibas desplegadas todas las aplicaciones que quisiéramos que interactuaran o colaborativamente entre si, ahora las tendencias han cambiado las arquitecturas modernas nos sugieren tener algo como el diagrama de la derecha donde tengamos pequeñas aplicaciones o pequeños servicios que interactúen entre si, en vez de una gran aplicación. esto nos da mucha facilidad al momento de desarrollo y al momento de mantener nuestra aplicación. Cada aplicación internamente contiene su propio servidor de aplicaciones, con una configuración totalmente independiente una de la otra. como vimos en la clase anterior sprint Boot es el proyecto de sprint para crear aplicaciones autocontenidas estos nos permite olvídanos completamente de la arquitectura y enfocarnos únicamente en desarrollo, delegadle a sprint boot labores como configuración de dependencias o desplegar nuestros servicios o aplicación a un servidores de aplicaciones y enfocarnos únicamente en crear el mejor código posible. Para eso sprint boot utiliza internamente un servidor de aplicaciones embebido o un contenedor de aplicaciones embebido, por defecto sprint boot utiliza TOMCAT pero podemos hacerlo también con JETTY o con UNDERTOW.
Las arquitecturas modernas se basan de acuerdo a una aplicacion autocontenida
Cada aplicación internamente contiene su servidor de aplicaciones con su configuración totalmente independiente una de la otra en lugar de todas las aplicaciones centralizadas en un solo servidor
No se pero creo que los cursos de java deberian actualizarlos ya tienen 3 Años.
Que tristeza cuando te das cuenta que trabajas en una empresa de la edad de piedra…!
Es uno de los curso que venia esperando hace bastante tiempo y el profesor es una excelente persona y un muy buen profesional, espero aprender bastante en este curso. Saludes Alejandro.
jajaja como no puedo ver a los ojos al profe por el reflejo siento que es un robot
¡Qué interesante!.
Entonces, si tuviera un proyecto donde necesitara una API, un Dashboard donde use Thymeleaf y otros servicios más,
¿Una buena práctica sería crear un proyecto de SpringBoot para cada uno de esos servicios? o
¿Dejar todos estos servicios en una misma aplicación de Spring Boot, separada por paquetes (com.proyecto.api … com.proyecto.dashboard … etc)?
Aplicacion autocontenida son pequeños servicios que interactuan entre si (microservicios). Facilita el desarrollo y la manteniblidad de la aplicacion. Sprint Boot tiene embebido un servidor(tomcat), tambien incluye un gestor de dependencias.
Creo que deberian actualizar los cursos, hoy en dia hay muchas versiones y cosas nuevas y confunde.
Cuando entro a generar el zip de la pagina la version de java que aparece es la 17. La cambio a la 11 (que es la que ya tenia instalada) y en el build.gradle me genera sourceCompatibility = “17” aunque en la pantalla sigue seleccionada la 11. Al cambiarlo manualmente aparece un error al descargar las dependencias - Variant ‘mavenOptionalRuntimeElements’ Imcomptabile because this component is compatible with Java 17. Viendo la generacion del build.gradle antes de descargarlo noto que con la version de spring 2.7.14 si genera compatibilidad con la 11 y ya no da este error.
Aplicación autocontenida
Significa que cada aplicación tiene su propia configuración
Spring Boot: Es el proyecto de Spring para aplicaciones autocontenidas
Estas estructuras se conocen como BACKENDFORFRONTED Y MICROFRONTEND
El curso está bien, pero creo que debería decir, Curso de Spring Boot, dado que lo que se habla de Spring por si mismo es muy poco
Esto es algo parecido a Google Kubernetes…?
Excelente curso!
Link de spring initializr 👇
https://start.spring.io/
¡Este curso es muy bueno!
siempre hay algo nuevo que aprender
Estoy en platzi day y esta muy lenta la plataforma
tiene un servidor de aplicaciones incluido, por defecto es Tomcat, pero también se podría usar Jetty o Undertow
Want to see more contributions, questions and answers from the community?