Cesar Jesus Gtz
Hinder Adrian Alvarez Perlaza
Excelente resumen (y)
Andrés Carrillo
Que usas para estos apuntes?
Crear aplicaciones web modernas requiere herramientas que simplifiquen la configuración y permitan enfocarse en lo que realmente importa: escribir código de calidad. Spring Boot ofrece exactamente eso, y entender cómo funciona una aplicación autocontenida es el primer paso para construir servicios robustos y mantenibles.
¿Qué es una aplicación autocontenida y por qué importa?
Las aplicaciones web empresariales tradicionales dependían de un único servidor de aplicaciones centralizado, donde se alojaban múltiples aplicaciones junto con su configuración de bases de datos, servicios externos y variables [01:00]. Todas las aplicaciones compartían ese mismo servidor.
Las arquitecturas modernas proponen un enfoque diferente: pequeñas aplicaciones o servicios que interactúan entre sí en lugar de una sola aplicación monolítica [01:24]. Cada aplicación contiene internamente su propio servidor con una configuración totalmente independiente. Esto facilita tanto el desarrollo como el mantenimiento.
Spring Boot hace posible este modelo al ser el proyecto de Spring diseñado para crear aplicaciones autocontenidas [01:50]. Permite delegar tareas como la configuración de dependencias y el despliegue a un servidor, para que el desarrollador se concentre exclusivamente en programar.
¿Cómo funciona el servidor embebido de Spring Boot?
Spring Boot utiliza un contenedor de aplicaciones embebido que viene incluido dentro del propio proyecto [02:12]. Por defecto trabaja con Apache Tomcat, aunque también soporta Jetty y Undertow. Esto elimina la necesidad de instalar y configurar un servidor externo.
Además del servidor embebido, Spring Boot provee un gestor de dependencias compatible con Maven o Gradle, configuraciones automáticas y herramientas adicionales para personalizar la aplicación según las necesidades del proyecto [02:30].
¿Cómo crear un proyecto con Spring Initializr?
Spring Initializr es el sitio oficial disponible en start.spring.io para generar aplicaciones autocontenidas con Spring Boot [02:50]. Con pocos clics se obtiene un proyecto listo para comenzar a trabajar.
Estos son los pasos para configurar el proyecto [03:10]:
Al dar clic en Generate, se descarga un archivo .zip con toda la estructura necesaria para que la aplicación funcione correctamente.
¿Qué archivos genera Spring Initializr?
Al explorar el proyecto generado se encuentran archivos importantes [05:15]:
.gitignore: útil para subir el código a un repositorio de control de versiones.build.gradle: escrito en Groovy, contiene la configuración completa de la aplicación, incluyendo plugins, grupo, versión de Java, repositorios, dependencias y configuración de pruebas [05:35].gradlew, gradlew.bat, settings.gradle): necesarios para que Gradle funcione, pero no requieren intervención directa.Dentro de la carpeta src se encuentran dos subcarpetas principales [06:15]:
main: contiene java con las clases del proyecto y resources con archivos de configuración.test: destinada a las pruebas.En la carpeta java ya existe una clase principal llamada PlatziMarketApplication, que contiene el método main, encargado de ejecutar la aplicación [06:40]. Esta clase incluye la anotación @SpringBootApplication, que le indica a Spring que es la clase que gestiona toda la aplicación.
Dentro de resources se encuentra el archivo application.properties [07:00], donde se configuran variables del proyecto, ya sean las documentadas oficialmente por Spring o variables personalizadas definidas por el desarrollador.
Si quieres profundizar en la configuración de este archivo o en cómo abrir el proyecto en un IDE como IntelliJ IDEA, comparte tu experiencia creando tu primer proyecto con Spring Initializr.
Cesar Jesus Gtz
Hinder Adrian Alvarez Perlaza
Excelente resumen (y)
Andrés Carrillo
Que usas para estos apuntes?
Alexandra Gomez Huertas
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.
Luis Hernando Soto Mesa
Gracias por el resumen.
Daniel Alessandro García Batres
👏👏👏
Diego Fernando Caviedes Camaho
No se pero creo que los cursos de java deberian actualizarlos ya tienen 3 Años.
Sebastian Rojas Vargas
Opino lo mismo, en el start.spring.io no aparece la versión 11 de Java, que es la que se usará en el curso
Arturo Solares
Ahora ya tienen 4 años.
Gilbert Ardila
Que tristeza cuando te das cuenta que trabajas en una empresa de la edad de piedra...!
Japheth Calzada López
Momento de moverse amigo
Linda Gomez
Quería seguir el curso pero la opción mínima de Java para Spring al día de hoy es 17, eso dice mucho de lo antiguo que es este curso :(
Daniel Aristizabal castaño
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.
Lautaro Cabral
jajaja como no puedo ver a los ojos al profe por el reflejo siento que es un robot
Alejandro Ramírez
ProfesorJajaja cursos grabados en tiempos de covid19; estaba justo al frente de una ventana que causaba ese reflejo. Para la próxima tendremos otra iluminación o no tendré lentes 😎
Darío Emmanuel Varela
Creo que deberian actualizar los cursos, hoy en dia hay muchas versiones y cosas nuevas y confunde.
Sebastian Guazaquillo
Comentario de 2024 curioso : Ahora Spring initiliz utiliza JAVA 17 y JAVA 21 porque son versiones mejoradas de lo que ofrece JAVA 11 con su LTS(Long Term Support)
Carina Jiménez García
¡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)?
Fausto Almeida Campos
Creo que la mejor práctica sería la que se acomode a tu necesidad. Como Spring es tan flexible en ese sentido, muchas veces podría ser útil comenzar con una aplicación que lo contenga todo, y conforme sea necesario, luego se vayan separando servicios específicos.
Isaac Morales Cedeño
Si, no es especificamente Sprint Boot, es un termino general de pasar de una arq monolitica a una creada con microservicios.
José Luis Rincón S.
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.
Óscar Mauricio Rondón Fajardo
Bueno 4 años después. está desactualizado...
Victor Alfonso Estrada Ciro
El curso esta algo desactualizado, Springboot esta por la versión 3.2.0 y la versión minima con la que funciona es Java 17, no deja usar versiones inferiores.
Juan Rossano
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.
Alejandro Sotelo
Hola, quisiera saber que servidor de aplicaciones se recomienda utilizar, Tomcat, Jetty o Undertow, y en que casos se recomienda usar uno u otro?
Evert Ortiz
Este curso sirve aun despues de 4 años?
Leonardo Aedo Jimenez
Luz María Hernández Soriano
Aplicación autocontenida Significa que cada aplicación tiene su propia configuración
Spring Boot: Es el proyecto de Spring para aplicaciones autocontenidas
Para los que quieran seguir el curso con la versioón de Java, Spring y Gradle que usa el profesor pueden descargar el proyecto con cualquier versión del initializer y despues cambian dos cosas:
1) Cambiar la versión de JAVA y Spring que se quiere usar en el build.gradle y que quede así
plugins { id 'java' id 'org.springframework.boot' version '2.3.1.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' } group = 'com.leonardo.market' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }
2) Cambiar el tipo de gradle a usar, para esto entramos en gradle>wrapper>gradle.wrapper.properties y modificamos la line a de URL
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-bin.zip