codemotion madrid 2014 - spring ha muerto... ¡larga vida a spring boot!

28
MADRID · NOV 21-22 · 2014 Iván López - @ilopmar Iván López - @ilopmar Spring ha muerto... ¡Larga vida a Spring (Boot)!

Upload: ivan-lopez

Post on 02-Jul-2015

1.339 views

Category:

Technology


0 download

DESCRIPTION

Slides de mi charla de Codemotion 2014: "Spring ha muerto... ¡Larga vida a Spring Boot!" El codigo está disponible en: https://github.com/lmivan/codemotion-madrid-2014-examples -------------- Actualmente se necesita un tiempo nada despreciable para configurar la arquitectura de tu aplicación y empezar a desarrollar. Y si hablamos de Spring esto pueden ser horas o incluso días... ¿Qué tal si tardases menos de 5 minutos? Spring Boot permite de manera fácil y rápida la creación de aplicaciones basadas en Spring Framework eliminando toda la configuración XML. No se trata de generación de código sino que proporciona configuraciones por defecto a la vez que permite de manera muy sencilla sobreescribir estas configuraciones según nuestras necesidades. Con él podemos crear aplicaciones "production-ready" proporcionando adicionalmente y de manera automática métricas, health-checks y configuración externalizada. En la charla verás, entre otros, ejemplos introductorios, la creación de un pequeño API Rest, el uso de Websockets... y ¡muchos más! Todos los ejemplos que verás estarán escritos en Groovy, pero eso no te impedirá sacar todo el provecho a la charla aunque tu lenguaje favorito sea Java o Scala.

TRANSCRIPT

Page 1: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmarIván López - @ilopmar

Spring ha muerto...

¡Larga vida aSpring (Boot)!

Page 2: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

@ilopmar

Soy Iván López¡Hola!

http://greachconf.com

Page 3: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

DISCLAIMER

Page 4: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

¿Qué es Spring Boot?

– Presentado en SpringOne 2013 (~ 1 año)

– Bootstrap rápido de aplicaciones Spring

– Opinionated framework (Convención sobre Configuración)

– Integración rápida con ecosistema Spring

Page 5: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

¿Por qué es diferente?

– Requisitos no funcionales

– No XML / No generación de código

– Groovy!

– Aplicaciones stand-alone

– Micro-services

Page 6: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Page 7: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

¿Qué necesito para instalarlo?

– Java 6+

– GVM: http://gvmtool.net

– Descargarlo http://repo.spring.io/release/org/springframework/boot/ spring-boot-cli/

– Añadirlo como dependencia

Page 8: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Spring Boot CLI

Page 9: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Spring Boot CLI

DEMO

Page 10: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

¿Qué ha pasado?import org.springframework.boot.SpringApplicationimport org.springframework.boot.autoconfigure.EnableAutoConfigurationimport org.springframework.web.bind.annotation.RequestMappingimport org.springframework.web.bind.annotation.RestController @Grab('org.springframework.boot:spring-boot-starter-web:1.2.0.M2')@EnableAutoConfiguration@RestControllerclass ThisWillActuallyRun {   @RequestMapping("/") String home() { 'Hello Codemotion!' }   static void main(String[] args) { SpringApplication.run ThisWillActuallyRun, args }}

Page 11: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

¿Qué ha pasado?import org.springframework.boot.SpringApplicationimport org.springframework.boot.autoconfigure.EnableAutoConfigurationimport org.springframework.web.bind.annotation.RequestMappingimport org.springframework.web.bind.annotation.RestController @Grab('org.springframework.boot:spring-boot-starter-web:1.2.0.RC1')@EnableAutoConfiguration@RestControllerclass ThisWillActuallyRun {   @RequestMapping("/") String home() { 'Hello Codemotion!' }   static void main(String[] args) { SpringApplication.run ThisWillActuallyRun, args }}

Page 12: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

@EnableAutoConfiguration

– Intenta averiguar y configurar automáticamente la aplicación

– Se quita del medio cuando definimos nuestros beans

– Utiliza los .jars de nuestro classpath

Page 13: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Starters

– POMs estándar

– Dependencias recomendadas

– Gestión de dependencias transitivas

Page 14: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Starters

actuator

amqp

aop

batch

data-elasticsearch

data-mongodb

groovy-templates

integration

jdbc

redis

remote-shell

security

websocket

...

Page 15: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Ok, ¿cómo empiezo?

– http://start.spring.io

– Maven/Gradle

– Java/Groovy

– Versión JDK

– Starters

Page 16: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Page 17: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Estructura del proyecto

$ tree.├── build.gradle└── src ├── main │   ├── groovy │   │   └── es │   │   └── codemotion │   │   └── Application.groovy │   └── resources │   ├── application.properties │   ├── static │   └── templates └── test └── groovy └── es └── codemotion └── ApplicationTests.groovy

Page 18: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

spring-boot-starter-actuator

– Requisitos no funcionales

– Métricas

– Health-checks

– Configuración externalizada

Page 19: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Listo para producción

– Spring CLIspring jar my-app.jar app.groovy

java -jar my-app.jar

– Gradlegradle build

java -jar build/libs/my-app-0.0.1.jar

Page 20: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Configuración

– application.properties / application.yml

– Sobreescribir propiedades con parámetros

java -jar app.jar --server.port=8181

– @ConfigurationProperties

Page 21: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Logging

– Logback por defecto

– logback.groovy

– @groovy.util.logging.Slf4j

Page 22: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

DEMO

Page 23: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Page 24: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

¿Y qué pasa con Grails?

– Grails es Spring

– Proyectos híbridos

– Grails 3.0 sobre Spring Boot

– Netflix

Page 25: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

¿Pero habrá algo malo, no?

– Es Spring (para lo bueno y lo malo)

– Annotation Driven Development

– Documentación

– Reload

Page 26: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

CONCLUSIONES

Page 27: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

Conclusiones

– Futuro de Spring Framework

– Bootstrap rápido de aplicaciones Spring

– Micro-services

– Integración con Gradle (bueno, y maven)

Page 28: Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!

MADRID · NOV 21-22 · 2014Iván López - @ilopmar

¡Gracias!

@ilopmar

[email protected]

https://github.com/lmivan

Iván López

http://kcy.me/1dbnd

¿Preguntas?