Codemotion Madrid 2014 - Spring ha muerto... ¡larga vida a spring boot!
-
Upload
ivan-lopez -
Category
Technology
-
view
1.336 -
download
0
description
Transcript of 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)!
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
@ilopmar
Soy Iván López¡Hola!
http://greachconf.com
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
DISCLAIMER
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
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
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
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
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
Spring Boot CLI
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
Spring Boot CLI
DEMO
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 }}
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 }}
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
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
Starters
– POMs estándar
– Dependencias recomendadas
– Gestión de dependencias transitivas
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
...
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
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
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
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
spring-boot-starter-actuator
– Requisitos no funcionales
– Métricas
– Health-checks
– Configuración externalizada
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
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
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
Logging
– Logback por defecto
– logback.groovy
– @groovy.util.logging.Slf4j
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
DEMO
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
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
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
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
CONCLUSIONES
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)
MADRID · NOV 21-22 · 2014Iván López - @ilopmar
¡Gracias!
@ilopmar
https://github.com/lmivan
Iván López
http://kcy.me/1dbnd
¿Preguntas?