SlideShare una empresa de Scribd logo
Nuestras
locaciones
Nuestros
Panelistas
Paulina Ibarra
Marketing Analyst
Germán Vecchiarelli
Technical Lead
QUESTIONS
#SpringBootBSFQue es Spring Boot?
• Una herramienta para crear una aplicación con Spring de manera muy
fácil y rápida
• Incluye configuraciones y características por defecto
• Fácil de personalizar
• Lista para desplegar en producción
Configuración XML QUESTIONS
#SpringBootBSF
Empezando en java
@SpringBootApplication
@RestController
public class DemoApplication {
public static void main(final String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@RequestMapping("/")
public String holaMundo() {
return "Hola Mundo!";
}
}
QUESTIONS
#SpringBootBSF
@SpringBootApplication
• Crea un contexto de Spring
• Corre una aplicación con una sola línea de código
• Auto-configura la aplicación
• No invalida la configuración personalizada por el usuario
QUESTIONS
#SpringBootBSF
Web Server Embebido
• Tomcat embebido por defecto pero se puede usar jetty, undertow, webflux
Configuraciones generales (para todos los servers)
server.port=9000
Configuraciones particulares (para Tomcat)
• server.tomcat.accesslog.enabled=true
• server.tomcat.accesslog.pattern=%t %a "%r" %s (%D ms)
QUESTIONS
#SpringBootBSF
Maven plugin
• Permite correr la aplicación usando java –jar app.jar
• No necesita ser desempacada para correr
• Aplicación liviana
• Fácil de subir a la nube
• Totalmente portátil, no necesita configuración
QUESTIONS
#SpringBootBSF
Construir un war desplegable
Los servers embebidos son una gran característica de Spring Boot, pero si
queremos producir un war que sea desplegable en un contenedor tradicional se
puede hacer. Para eso se debe:
• Extender de SpringBootServletInitializer
• Modificar la forma de empaquetado en el pom.xml
<packaging>war</packaging>
QUESTIONS
#SpringBootBSF
Construir un war desplegable
• Excluir las librerías del Tomcat embebido
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
QUESTIONS
#SpringBootBSF
Configuración externalizada
• Argumentos por línea de comandos
java -jar target/*.jar --server.port=9000
• Archivo application.properties ubicado junto al jar de la aplicación
• Archivo application.properties ubicado dentro del jar
• Se puede modificar el nombre y ubicación del archivo de
configuración
spring.config.name – por defecto:application
spring.config.location – una ubicación completa
ej: java -jar target/*.jar --spring.config.name=production
QUESTIONS
#SpringBootBSF
Spring Boot starters
• Son POMs de Maven que agrupan dependencias recomendadas por Spring.
• Comienzan con spring-boot-starter-*
• El usuario puede crear su propio starter, la convención de nombre es:
miproyecto-spring-boot-starter
QUESTIONS
#SpringBootBSF
Spring Boot starters
Algunos starters:
• spring-boot-starter-data-jpa
• spring-boot-starter-data-ldap
• spring-boot-starter-data-mongodb
• spring-boot-starter-mail
• spring-boot-starter-security
• spring-boot-starter-test
• spring-boot-starter-thymeleaf
• spring-boot-starter-web
QUESTIONS
#SpringBootBSF
Security
• Starter: spring-boot-starter-security
• Configura la seguridad de una aplicación web con los siguientes features:
• Un administrador de autenticación en memoria, con un usuario y contraseña
que pueden ser modificados en security.user.* (security.user.name,
security.user.password)
• Ignora paths para recursos estáticos (/css/**, /js/**, /images/**, etc)
QUESTIONS
#SpringBootBSF
Security
• Configura basic auth para todos los otros endpoints http
• Características por defecto: HSTS (Strict-Transport-Security). XSS, CSRF,
caching
• Genera una contraseña diferente cada vez, a menos q sea configurado.
• Las características por defecto se pueden configurar modificando
propiedades externas (security.*)
QUESTIONS
#SpringBootBSF
Actuators
• Starter: spring-boot-starter-actuator
• Añaden características no funcionales comunes a toda aplicación y expone
endpoints para interactuar con ellos
• Actuators: beans, dump, health, info, loggers, metrics, mappings, shutdown,
trace, logfile
• Si es usa un servidor embebido, puede usar el mismo puerto que la aplicación o
uno diferente
QUESTIONS
#SpringBootBSF
Actuators
• La seguridad de los actuators, se puede modificar usando propiedades de
configuracion (management.security.*).
• Si uno ubica los actuators de manera que se deba atravesar un firewall para
accederlos, quizás se desee establecer la configuración de manera de que no se
requiera autenticación. Esto se puede lograr cambiando la configuración en
application.properties
application.properties
management.security.enabled=false
QUESTIONS
#SpringBootBSF
QUESTIONS
#SpringBootBSFActuators
• Por defecto, los actuators se exponen en el mismo puerto que atiende la aplicación. Hay
que tener cuidado de no exponer información confidencial accidentalmente al cambiar la
configuración de la propiedad management.security.enabled.
• Los endpoints pueden ser configurados usando las propiedades de spring, por ejemplo
para habilitar el endpoint shutdown (apagar la applicación):
endpoints.shutdown.enabled=true
QUESTIONS
#SpringBootBSFActuators
• Por convención, los endpoints se encuentran en el path /application/{nombre}
e.g: /application/health
• El path donde atienden los endpoints se puede configurar usando la propiedad
management.endpoints.web.base-path
• El Puerto de los actuators se puede modificar cambiando la propiedad
management.server.port
Q & A
Germán Vecchiarelli
Technical Lead
gvecchiarelli@belatrixsf.com
Contacto
¡Muchas Gracias!

Más contenido relacionado

La actualidad más candente

Orlando yepez[1]
Orlando yepez[1]Orlando yepez[1]
Orlando yepez[1]
orlandoyepez
 
Diferencias
DiferenciasDiferencias
Diferencias
Fabitoooooooooooo
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en Autentia
Jorge Pacheco Mengual
 
Drupal 8: deploy capistrano y gestión de la configuración
Drupal 8: deploy capistrano y gestión de la configuraciónDrupal 8: deploy capistrano y gestión de la configuración
Drupal 8: deploy capistrano y gestión de la configuración
Biko
 
Desarrollo Web con Kohana Framework PHP
Desarrollo Web con Kohana Framework PHPDesarrollo Web con Kohana Framework PHP
Desarrollo Web con Kohana Framework PHP
Javier López López
 
Spring boot et. al. para el impaciente
Spring boot et. al. para el impacienteSpring boot et. al. para el impaciente
Spring boot et. al. para el impaciente
Miguel Ángel Enríquez López
 
JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1 JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1
César Pajares
 
JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4  JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4
César Pajares
 
dotCMS: un Web CMS Open Source de perfil empresarial
dotCMS: un Web CMS Open Source de perfil empresarialdotCMS: un Web CMS Open Source de perfil empresarial
dotCMS: un Web CMS Open Source de perfil empresarial
Refresh Maracaibo
 
Primefaces
PrimefacesPrimefaces
Primefaces
Vortexbird
 
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2 JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
César Pajares
 
INTRODUCCION ARM AZURE
INTRODUCCION ARM AZURE INTRODUCCION ARM AZURE
INTRODUCCION ARM AZURE
Ivan Martinez
 
Introducción a ARM (Azure Resource Manager)
Introducción a ARM (Azure Resource Manager) Introducción a ARM (Azure Resource Manager)
Introducción a ARM (Azure Resource Manager)
Cesar Herrada
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
Luis Ruiz Pavón
 
Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
Miguel Angel Nieto
 
Kumbia php
Kumbia phpKumbia php
Magallanes - PHPmvd Meet Up - Mayo 2014
Magallanes - PHPmvd Meet Up - Mayo 2014Magallanes - PHPmvd Meet Up - Mayo 2014
Magallanes - PHPmvd Meet Up - Mayo 2014
Andrés Montañez
 
componentes de jsp
componentes de jsp componentes de jsp
componentes de jsp Angie2331
 
webutil oracle forms
webutil oracle formswebutil oracle forms
webutil oracle formsisrael
 

La actualidad más candente (20)

Orlando yepez[1]
Orlando yepez[1]Orlando yepez[1]
Orlando yepez[1]
 
Diferencias
DiferenciasDiferencias
Diferencias
 
Presentación Spring Boot en Autentia
Presentación Spring Boot en AutentiaPresentación Spring Boot en Autentia
Presentación Spring Boot en Autentia
 
Cronograma Curso Kumbia
Cronograma Curso KumbiaCronograma Curso Kumbia
Cronograma Curso Kumbia
 
Drupal 8: deploy capistrano y gestión de la configuración
Drupal 8: deploy capistrano y gestión de la configuraciónDrupal 8: deploy capistrano y gestión de la configuración
Drupal 8: deploy capistrano y gestión de la configuración
 
Desarrollo Web con Kohana Framework PHP
Desarrollo Web con Kohana Framework PHPDesarrollo Web con Kohana Framework PHP
Desarrollo Web con Kohana Framework PHP
 
Spring boot et. al. para el impaciente
Spring boot et. al. para el impacienteSpring boot et. al. para el impaciente
Spring boot et. al. para el impaciente
 
JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1 JBoss AS jeap - Curso JBoss JB366 Día 1
JBoss AS jeap - Curso JBoss JB366 Día 1
 
JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4  JBoss AS Cluster - Curso JBoss JB366 Día 4
JBoss AS Cluster - Curso JBoss JB366 Día 4
 
dotCMS: un Web CMS Open Source de perfil empresarial
dotCMS: un Web CMS Open Source de perfil empresarialdotCMS: un Web CMS Open Source de perfil empresarial
dotCMS: un Web CMS Open Source de perfil empresarial
 
Primefaces
PrimefacesPrimefaces
Primefaces
 
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2 JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
JBoss AS Installation -JBoss as jeap - Curso JBoss JB366 Día 2
 
INTRODUCCION ARM AZURE
INTRODUCCION ARM AZURE INTRODUCCION ARM AZURE
INTRODUCCION ARM AZURE
 
Introducción a ARM (Azure Resource Manager)
Introducción a ARM (Azure Resource Manager) Introducción a ARM (Azure Resource Manager)
Introducción a ARM (Azure Resource Manager)
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
 
Tomcat y Jboss
Tomcat y JbossTomcat y Jboss
Tomcat y Jboss
 
Kumbia php
Kumbia phpKumbia php
Kumbia php
 
Magallanes - PHPmvd Meet Up - Mayo 2014
Magallanes - PHPmvd Meet Up - Mayo 2014Magallanes - PHPmvd Meet Up - Mayo 2014
Magallanes - PHPmvd Meet Up - Mayo 2014
 
componentes de jsp
componentes de jsp componentes de jsp
componentes de jsp
 
webutil oracle forms
webutil oracle formswebutil oracle forms
webutil oracle forms
 

Similar a Spring Fácil: Cambios en el framework con Spring Boot

Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
Jose Patricio Bovet Derpich
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
Iker Canarias
 
Administrando Jboss
Administrando JbossAdministrando Jboss
Administrando Jboss
Javier Turégano Molina
 
Strust
StrustStrust
Strust
nolasco2014
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
Luis Miguel De Bello
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
Rodrigo Pimentel
 
Webutil de oracle
Webutil de oracleWebutil de oracle
Webutil de oracleguestc91f49
 
Webutil
WebutilWebutil
Webutil
xtc1976
 
Turbogears
TurbogearsTurbogears
Turbogears
Fher Lopez
 
sesion03-traspa.pdf
sesion03-traspa.pdfsesion03-traspa.pdf
sesion03-traspa.pdf
OdalisLinares
 
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones WebdotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
Pedro J. Molina
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBoss
Iker Canarias
 
15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx
Jose Juan R. Zuñiga
 
Tomcat
TomcatTomcat
Tomcat
abbadon1989
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
Paradigma Digital
 
Framework GSM para Pruebas Automatizadas
Framework GSM para Pruebas AutomatizadasFramework GSM para Pruebas Automatizadas
Framework GSM para Pruebas Automatizadas
Software Guru
 

Similar a Spring Fácil: Cambios en el framework con Spring Boot (20)

Springboot Overview
Springboot  OverviewSpringboot  Overview
Springboot Overview
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
Administrando Jboss
Administrando JbossAdministrando Jboss
Administrando Jboss
 
Strust
StrustStrust
Strust
 
Jdbc
JdbcJdbc
Jdbc
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
Tomcat yant
Tomcat yantTomcat yant
Tomcat yant
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
Webutil de oracle
Webutil de oracleWebutil de oracle
Webutil de oracle
 
Webutil
WebutilWebutil
Webutil
 
Turbogears
TurbogearsTurbogears
Turbogears
 
sesion03-traspa.pdf
sesion03-traspa.pdfsesion03-traspa.pdf
sesion03-traspa.pdf
 
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones WebdotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBoss
 
15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx15a. Reunion de SpringHispano.org y grails.org.mx
15a. Reunion de SpringHispano.org y grails.org.mx
 
Tomcat
TomcatTomcat
Tomcat
 
Tomcat
TomcatTomcat
Tomcat
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
Framework GSM para Pruebas Automatizadas
Framework GSM para Pruebas AutomatizadasFramework GSM para Pruebas Automatizadas
Framework GSM para Pruebas Automatizadas
 

Más de Belatrix Software

Top 10 riesgos de las aplicaciones móviles
Top 10 riesgos de las aplicaciones móvilesTop 10 riesgos de las aplicaciones móviles
Top 10 riesgos de las aplicaciones móviles
Belatrix Software
 
Pruebas continuas con cypress en la era DevOps
Pruebas continuas con cypress en la era DevOpsPruebas continuas con cypress en la era DevOps
Pruebas continuas con cypress en la era DevOps
Belatrix Software
 
Navigating the new world ushered in overnight by COVID-19
Navigating the new world ushered in overnight by COVID-19Navigating the new world ushered in overnight by COVID-19
Navigating the new world ushered in overnight by COVID-19
Belatrix Software
 
Multitenancy con múltiples Bases de Datos
Multitenancy con múltiples Bases de DatosMultitenancy con múltiples Bases de Datos
Multitenancy con múltiples Bases de Datos
Belatrix Software
 
Desarrollando AWS Alexa Skills con Java
Desarrollando AWS Alexa Skills con JavaDesarrollando AWS Alexa Skills con Java
Desarrollando AWS Alexa Skills con Java
Belatrix Software
 
Creando Animaciones en React Native
Creando Animaciones en React NativeCreando Animaciones en React Native
Creando Animaciones en React Native
Belatrix Software
 
Microservicios con spring
Microservicios con springMicroservicios con spring
Microservicios con spring
Belatrix Software
 
RPA: Sistemas de información para optimizar procesos de negocios
RPA: Sistemas de información para optimizar procesos de negociosRPA: Sistemas de información para optimizar procesos de negocios
RPA: Sistemas de información para optimizar procesos de negocios
Belatrix Software
 
Estrategias para alcanzar la Transformación Digital
Estrategias para alcanzar la Transformación DigitalEstrategias para alcanzar la Transformación Digital
Estrategias para alcanzar la Transformación Digital
Belatrix Software
 
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y CríticasTesting de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
Belatrix Software
 
Api NodeJS con PureScript
Api NodeJS con PureScriptApi NodeJS con PureScript
Api NodeJS con PureScript
Belatrix Software
 
Machine Learning vs. Deep Learning
Machine Learning vs. Deep LearningMachine Learning vs. Deep Learning
Machine Learning vs. Deep Learning
Belatrix Software
 
Metodologías de CSS
Metodologías de CSSMetodologías de CSS
Metodologías de CSS
Belatrix Software
 
Los retos de un tester ágil
Los retos de un tester ágilLos retos de un tester ágil
Los retos de un tester ágil
Belatrix Software
 
IoT + voice assistants = posibilidades infinitas
IoT + voice assistants = posibilidades infinitasIoT + voice assistants = posibilidades infinitas
IoT + voice assistants = posibilidades infinitas
Belatrix Software
 
Lleva tus aplicaciones móviles a otro nivel con Flutter
Lleva tus aplicaciones móviles a otro nivel con FlutterLleva tus aplicaciones móviles a otro nivel con Flutter
Lleva tus aplicaciones móviles a otro nivel con Flutter
Belatrix Software
 
Microservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricMicroservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service Fabric
Belatrix Software
 
Micro Frontends: Rompiendo el monolito en las aplicaciones Web
Micro Frontends: Rompiendo el monolito en las aplicaciones WebMicro Frontends: Rompiendo el monolito en las aplicaciones Web
Micro Frontends: Rompiendo el monolito en las aplicaciones Web
Belatrix Software
 
Predictions 2019: Digital journeys are well on their way
Predictions 2019: Digital journeys are well on their way Predictions 2019: Digital journeys are well on their way
Predictions 2019: Digital journeys are well on their way
Belatrix Software
 
Integrando Test Driven Development en aplicaciones React
Integrando Test Driven Development en aplicaciones ReactIntegrando Test Driven Development en aplicaciones React
Integrando Test Driven Development en aplicaciones React
Belatrix Software
 

Más de Belatrix Software (20)

Top 10 riesgos de las aplicaciones móviles
Top 10 riesgos de las aplicaciones móvilesTop 10 riesgos de las aplicaciones móviles
Top 10 riesgos de las aplicaciones móviles
 
Pruebas continuas con cypress en la era DevOps
Pruebas continuas con cypress en la era DevOpsPruebas continuas con cypress en la era DevOps
Pruebas continuas con cypress en la era DevOps
 
Navigating the new world ushered in overnight by COVID-19
Navigating the new world ushered in overnight by COVID-19Navigating the new world ushered in overnight by COVID-19
Navigating the new world ushered in overnight by COVID-19
 
Multitenancy con múltiples Bases de Datos
Multitenancy con múltiples Bases de DatosMultitenancy con múltiples Bases de Datos
Multitenancy con múltiples Bases de Datos
 
Desarrollando AWS Alexa Skills con Java
Desarrollando AWS Alexa Skills con JavaDesarrollando AWS Alexa Skills con Java
Desarrollando AWS Alexa Skills con Java
 
Creando Animaciones en React Native
Creando Animaciones en React NativeCreando Animaciones en React Native
Creando Animaciones en React Native
 
Microservicios con spring
Microservicios con springMicroservicios con spring
Microservicios con spring
 
RPA: Sistemas de información para optimizar procesos de negocios
RPA: Sistemas de información para optimizar procesos de negociosRPA: Sistemas de información para optimizar procesos de negocios
RPA: Sistemas de información para optimizar procesos de negocios
 
Estrategias para alcanzar la Transformación Digital
Estrategias para alcanzar la Transformación DigitalEstrategias para alcanzar la Transformación Digital
Estrategias para alcanzar la Transformación Digital
 
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y CríticasTesting de Aplicaciones Móviles, Públicas, Masivas y Críticas
Testing de Aplicaciones Móviles, Públicas, Masivas y Críticas
 
Api NodeJS con PureScript
Api NodeJS con PureScriptApi NodeJS con PureScript
Api NodeJS con PureScript
 
Machine Learning vs. Deep Learning
Machine Learning vs. Deep LearningMachine Learning vs. Deep Learning
Machine Learning vs. Deep Learning
 
Metodologías de CSS
Metodologías de CSSMetodologías de CSS
Metodologías de CSS
 
Los retos de un tester ágil
Los retos de un tester ágilLos retos de un tester ágil
Los retos de un tester ágil
 
IoT + voice assistants = posibilidades infinitas
IoT + voice assistants = posibilidades infinitasIoT + voice assistants = posibilidades infinitas
IoT + voice assistants = posibilidades infinitas
 
Lleva tus aplicaciones móviles a otro nivel con Flutter
Lleva tus aplicaciones móviles a otro nivel con FlutterLleva tus aplicaciones móviles a otro nivel con Flutter
Lleva tus aplicaciones móviles a otro nivel con Flutter
 
Microservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricMicroservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service Fabric
 
Micro Frontends: Rompiendo el monolito en las aplicaciones Web
Micro Frontends: Rompiendo el monolito en las aplicaciones WebMicro Frontends: Rompiendo el monolito en las aplicaciones Web
Micro Frontends: Rompiendo el monolito en las aplicaciones Web
 
Predictions 2019: Digital journeys are well on their way
Predictions 2019: Digital journeys are well on their way Predictions 2019: Digital journeys are well on their way
Predictions 2019: Digital journeys are well on their way
 
Integrando Test Driven Development en aplicaciones React
Integrando Test Driven Development en aplicaciones ReactIntegrando Test Driven Development en aplicaciones React
Integrando Test Driven Development en aplicaciones React
 

Último

PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 

Último (6)

PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 

Spring Fácil: Cambios en el framework con Spring Boot

  • 1.
  • 4. QUESTIONS #SpringBootBSFQue es Spring Boot? • Una herramienta para crear una aplicación con Spring de manera muy fácil y rápida • Incluye configuraciones y características por defecto • Fácil de personalizar • Lista para desplegar en producción
  • 6. Empezando en java @SpringBootApplication @RestController public class DemoApplication { public static void main(final String[] args) { SpringApplication.run(DemoApplication.class, args); } @RequestMapping("/") public String holaMundo() { return "Hola Mundo!"; } } QUESTIONS #SpringBootBSF
  • 7. @SpringBootApplication • Crea un contexto de Spring • Corre una aplicación con una sola línea de código • Auto-configura la aplicación • No invalida la configuración personalizada por el usuario QUESTIONS #SpringBootBSF
  • 8. Web Server Embebido • Tomcat embebido por defecto pero se puede usar jetty, undertow, webflux Configuraciones generales (para todos los servers) server.port=9000 Configuraciones particulares (para Tomcat) • server.tomcat.accesslog.enabled=true • server.tomcat.accesslog.pattern=%t %a "%r" %s (%D ms) QUESTIONS #SpringBootBSF
  • 9. Maven plugin • Permite correr la aplicación usando java –jar app.jar • No necesita ser desempacada para correr • Aplicación liviana • Fácil de subir a la nube • Totalmente portátil, no necesita configuración QUESTIONS #SpringBootBSF
  • 10. Construir un war desplegable Los servers embebidos son una gran característica de Spring Boot, pero si queremos producir un war que sea desplegable en un contenedor tradicional se puede hacer. Para eso se debe: • Extender de SpringBootServletInitializer • Modificar la forma de empaquetado en el pom.xml <packaging>war</packaging> QUESTIONS #SpringBootBSF
  • 11. Construir un war desplegable • Excluir las librerías del Tomcat embebido <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> QUESTIONS #SpringBootBSF
  • 12. Configuración externalizada • Argumentos por línea de comandos java -jar target/*.jar --server.port=9000 • Archivo application.properties ubicado junto al jar de la aplicación • Archivo application.properties ubicado dentro del jar • Se puede modificar el nombre y ubicación del archivo de configuración spring.config.name – por defecto:application spring.config.location – una ubicación completa ej: java -jar target/*.jar --spring.config.name=production QUESTIONS #SpringBootBSF
  • 13. Spring Boot starters • Son POMs de Maven que agrupan dependencias recomendadas por Spring. • Comienzan con spring-boot-starter-* • El usuario puede crear su propio starter, la convención de nombre es: miproyecto-spring-boot-starter QUESTIONS #SpringBootBSF
  • 14. Spring Boot starters Algunos starters: • spring-boot-starter-data-jpa • spring-boot-starter-data-ldap • spring-boot-starter-data-mongodb • spring-boot-starter-mail • spring-boot-starter-security • spring-boot-starter-test • spring-boot-starter-thymeleaf • spring-boot-starter-web QUESTIONS #SpringBootBSF
  • 15. Security • Starter: spring-boot-starter-security • Configura la seguridad de una aplicación web con los siguientes features: • Un administrador de autenticación en memoria, con un usuario y contraseña que pueden ser modificados en security.user.* (security.user.name, security.user.password) • Ignora paths para recursos estáticos (/css/**, /js/**, /images/**, etc) QUESTIONS #SpringBootBSF
  • 16. Security • Configura basic auth para todos los otros endpoints http • Características por defecto: HSTS (Strict-Transport-Security). XSS, CSRF, caching • Genera una contraseña diferente cada vez, a menos q sea configurado. • Las características por defecto se pueden configurar modificando propiedades externas (security.*) QUESTIONS #SpringBootBSF
  • 17. Actuators • Starter: spring-boot-starter-actuator • Añaden características no funcionales comunes a toda aplicación y expone endpoints para interactuar con ellos • Actuators: beans, dump, health, info, loggers, metrics, mappings, shutdown, trace, logfile • Si es usa un servidor embebido, puede usar el mismo puerto que la aplicación o uno diferente QUESTIONS #SpringBootBSF
  • 18. Actuators • La seguridad de los actuators, se puede modificar usando propiedades de configuracion (management.security.*). • Si uno ubica los actuators de manera que se deba atravesar un firewall para accederlos, quizás se desee establecer la configuración de manera de que no se requiera autenticación. Esto se puede lograr cambiando la configuración en application.properties application.properties management.security.enabled=false QUESTIONS #SpringBootBSF
  • 19. QUESTIONS #SpringBootBSFActuators • Por defecto, los actuators se exponen en el mismo puerto que atiende la aplicación. Hay que tener cuidado de no exponer información confidencial accidentalmente al cambiar la configuración de la propiedad management.security.enabled. • Los endpoints pueden ser configurados usando las propiedades de spring, por ejemplo para habilitar el endpoint shutdown (apagar la applicación): endpoints.shutdown.enabled=true
  • 20. QUESTIONS #SpringBootBSFActuators • Por convención, los endpoints se encuentran en el path /application/{nombre} e.g: /application/health • El path donde atienden los endpoints se puede configurar usando la propiedad management.endpoints.web.base-path • El Puerto de los actuators se puede modificar cambiando la propiedad management.server.port
  • 21. Q & A