0% encontró este documento útil (0 votos)
27 vistas

SpringBoot + Gradle

Este documento presenta una capacitación sobre Spring Boot y Gradle. Explica las diferencias entre Spring Boot y Spring Framework, los beneficios de Spring Boot como la creación de aplicaciones con facilidad y menos trabajo. También describe conceptos clave de Gradle como las compilaciones incrementales y el uso de Starters en Spring Boot para gestionar dependencias de forma automática. Finalmente, propone un proyecto de ejemplo utilizando estas herramientas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas

SpringBoot + Gradle

Este documento presenta una capacitación sobre Spring Boot y Gradle. Explica las diferencias entre Spring Boot y Spring Framework, los beneficios de Spring Boot como la creación de aplicaciones con facilidad y menos trabajo. También describe conceptos clave de Gradle como las compilaciones incrementales y el uso de Starters en Spring Boot para gestionar dependencias de forma automática. Finalmente, propone un proyecto de ejemplo utilizando estas herramientas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 31

TRAININGS 2021

SpringBoot + Gradle
Hay un mundo más fácil.
¡Y es gratis!
Acerca de mi
Spring Boot + Gradle
Acerca de quién da esta charla

Me llamo Silvestre

Tengo 37 años

Casado, con 2 hijos

Me sumé a IncluIT en plena pandemia (2020)

Trabajo en IT desde hace más de 10 años

Entusiasta de la tecnología.

Estoy dando esta charla porque me gusta.


Temario
Spring Boot
Historia
Ben efic io s : ¿ Po r q ué u s a r lo ?

Gradle
Conceptos básicos
Ah, pero es parecido a....

Proyecto de ejemplo
Un BFF con Spring Initializr
Spring Boot
S p r i n g B o o t v s . S p r i n g Fr a m e w o r k
Spring Boot
Diferencias entre SpringBoot y Spring
Framework

!=
Herramienta Marco de trabajo
Spring Boot
Un poco de historia

Abril de 2014
Aparece el release de
Spring Boot 1.0.

Habilita el desarrollo más


rápido en aplicaciones
Spring debido a que
integra la configuración
automática en los
proyectos.

https://spring.io/blog/2014/04/01/spring-boot-1-0-ga-released
¿Qué licuado tiene mejor sabor?
SpringBoot o
¿Qué licuado hacemos más rápido?
Diferencias entre SpringBoot y Spring
Framework

Usuar
io
Beneficios de Spring Boot
SpringBoot
Beneficios

Crear aplicaciones con facilidad y mucho menos


trabajo.

Obtención de métricas de salud y monitoreo


de API Rest.

Dependencias automáticas​(Starter).

Autoconfiguración basada en dependencias.

Servidores Web embebidos (como Jetty y


Tomcat).
Vamos a hacer un ejemplo!
Construcción de una aplicación
Spring Boot
Construyendo una aplicación

Pasos fundamentales

Construcción clásica 1. Crear un proyecto Maven/Gradle y


descargar las dependencias necesarias.
2. Desarrollamos la aplicación.
3. Desplegamos en un servidor.

Si nos ponemos a pensar, únicamente
el paso dos es
una tarea de desarrollo. ​

Los otros pasos están más orientados a infraestruct


ura.
No deberíamos tener que estar eligiendo continuam
ente las dependencias y el servidor de despliegue.
S t a r t e r, u n c o n c e p t o f u n d a m e n t a l
Spring Boot
Starter, un concepto fundamental

Gestión manual de dependencias


• Cuando el Proyecto crece, aparecen
conflictos de integración entre
frameworks.

• Se torna complejo gestionar las


dependencias, cuando algunas de
ellas están compartidas entre varios
frameworks.

• Se complica el versionado y
ocurre por ejemplo, que una
versión de Hibernate no sea
compatible con una versión de Spring
ya que necesiten dependencias
diferentes.
Spring Boot
Starter, un concepto fundamental

AH, pero con Starter....

Ya no tenemos que generar dependencias que estén


ligadas con Spring de forma directa.

Es decir, por ejemplo, ya no tenemos que instalar JPA


o Thymeleaf como dependencias, bastaría con instalar
Spring Boot JPA o Spring Boot ThymeLeaf.

Al instalar estos Starters Spring Boot


se encargará de hacer encajar las
dependencias de tal forma que
ambos proyectos puedan encajar de
forma natural en nuestra solución con
sus versiones correspondientes.
Spring Boot
Starter, un concepto fundamental

https://docs.spring.io/spring-boot/docs/current/reference/html/using.html
Gradle
Gradle: ¿Qué es? ¿Para qué sirve?
Gradle
¿Qué es? ¿Para qué sirve?

Es una herramienta que permite la automatización de


compilación de código abierto.

Se centra en flexibilidad y el rendimiento. Soporta


otros lenguajes, no solo Java.

Rápido por que completa las tareas reutilizando las


salidas de las ejecuciones anteriores, sólo procesar
las entradas que presentan cambios en paralelo.

Los scripts de compilación de Gradle se escriben


utilizando Groovy o Kotlin DSL (Domain Specific
Language).
Sistema de compilación oficial para Android.
Gradle Performance
Características principales

Builds incrementales: Si se ejecuta una


tarea, si su entrada y salida no han cambiado
desde la ejecución anterior, Gradle pensará
que esta tarea está actualizada y no la
ejecutará.

Build cache: La caché de compilación


reutiliza los resultados de las tareas
localmente y comparte los resultados de las
tareas entre las máquinas. En muchos casos,
esto acelerará el tiempo promedio de
construcción.

Daemon: Proceso de larga vida, que


almacena información “caliente” en memoria
(sobre compilaciones anteriores, estructura
de archivos, etc).
Ah, pero es parecido a…
Gradle
Ah, pero es parecido a …Maven!

Gradle mejora principalmente las siguientes funcionalidades de


Maven:

Lenguaje: No emplea el lenguaje XML, sino que se basa en DSL ya


que se focaliza en la resolución de un problema específico,
colaborando en construcciones sumamente estructuradas, eficientes y
mantenibles para múltiples proyectos.

Gestión del ciclo de vida: Añade la capacidad de soportar todo el


proceso de vida del software (desde la compilación, pruebas, análisis
estadístico e implementación).
Gradle
Ah, pero es parecido a …Maven!

El tiempo de construcción es corto y


El rendimiento es lento.
rápido.
Los scripts son mucho más cortos y
Los scripts son un poco largos.
limpios.
Utiliza lenguaje específico de dominio (DSL). Utiliza XML
Se basa en la tarea mediante la cual se realiza En Maven se definen objetivos vinculados al
el trabajo. proyecto.
Admite compilaciones incrementales de
No admite compilaciones incrementales.
la clase java.
Soporte en la mayoría de herramientas de Soporte en la mayoría de herramientas de
Integración continua. Integración continua.
Proyecto de ejemplo
El proyecto de ejemplo, será un pequeño Backend for Frontend.

El proyecto debe ser creado con Spring Boot Initializr, para Java 11,
con Gradle.

Seleccionar los Starters necesarios: Spring Web, Jersey (para cliente Rest)

Publicará una API Rest, con un método que recibirá una dirección IP por
GET.
El Backend invocará una API de geolocalización externa, libre y gratuita (
https://ip-api.com/docs/api:json), que consultará para obtener la
información y retornarla.
Conclusiones
Podríamos decir que SpringBoot está recomendado para proyectos
nuevos (Microservicios) por que disminuye los tiempos de configuración.

En SpringBoot la gestión de dependencias usando Starters evita


colisiones de nombres y versiones.

Gradle es mejor que Maven, es mas performante porque permite builds


incrementales y no ejecuta tareas de manera innecesaria. Los scripts son
mas cortos.

Gradle es compatible con repositorios Maven, y permite soportar tareas


de Ant, pero no hace falta salir corriendo a migrar pipelines.
¡MUCHAS GRACIAS!

incluit software |
www.incluit.com

Silvestre.Cerrato@inclui
t.com
Córdoba | Mina Clavero | Buenos Aires | Rosario | Miami | Bay
Area | CDMX
¡THANKS!

incluit software |
www.incluit.com

Silvestre.Cerrato@inclui
t.com
Córdoba | Mina Clavero | Buenos Aires | Rosario | Miami | Bay
Area | CDMX

También podría gustarte