SlideShare una empresa de Scribd logo
Spring Fácil: Cambios en el framework con Spring Boot
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

PDF
Breve introducción a Apache Ant
PDF
Log en Aplicaciones Java y JavaEE
PDF
Laravel 5.1
PDF
Hands-on Spring 3: The next generation
PPSX
Desarrollo rapido de aplicaciones web en php con el framework cakephp + scaffold
ODP
Introducción a Kohana Framework
Breve introducción a Apache Ant
Log en Aplicaciones Java y JavaEE
Laravel 5.1
Hands-on Spring 3: The next generation
Desarrollo rapido de aplicaciones web en php con el framework cakephp + scaffold
Introducción a Kohana Framework

La actualidad más candente (20)

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

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

PDF
Springboot Overview
PDF
Introducción a Tomcat
ODP
Administrando Jboss
PPTX
Strust
PDF
PPTX
Java Web - Struts
PDF
Probando aplicaciones AngularJS
PPTX
PPTX
POO Y CONFIGURACION API REST FRAMEWORK DJANGO.pptx
PPTX
Maven Overview
PPT
Webutil de oracle
PPT
Webutil
PPTX
Turbogears
PDF
sesion03-traspa.pdf
PDF
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
PDF
Introducción a JBoss
KEY
15a. Reunion de SpringHispano.org y grails.org.mx
PDF
Tomcat
PDF
Tomcat
PPTX
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
Springboot Overview
Introducción a Tomcat
Administrando Jboss
Strust
Java Web - Struts
Probando aplicaciones AngularJS
POO Y CONFIGURACION API REST FRAMEWORK DJANGO.pptx
Maven Overview
Webutil de oracle
Webutil
Turbogears
sesion03-traspa.pdf
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
Introducción a JBoss
15a. Reunion de SpringHispano.org y grails.org.mx
Tomcat
Tomcat
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
Publicidad

Más de Belatrix Software (20)

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

Último (9)

PPTX
Conceptos basicos de Base de Datos y sus propiedades
PPTX
Implementación equipo monitor12.08.25.pptx
PDF
Presentacion de compiladores e interpretes
PPTX
Fundamentos de Python - Curso de Python dia 1
PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
PPTX
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PPTX
Control de seguridad en los sitios web.pptx
Conceptos basicos de Base de Datos y sus propiedades
Implementación equipo monitor12.08.25.pptx
Presentacion de compiladores e interpretes
Fundamentos de Python - Curso de Python dia 1
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
AutoCAD Herramientas para el futuro, Juan Fandiño
Control de seguridad en los sitios web.pptx

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

  • 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