28
Spring Boot Eberhard Wolff Freelancer / Trainer http://ewolff.com

Spring Boot

Embed Size (px)

DESCRIPTION

Vortrag auf dem Expertenkreis Java, 14.8.2014, GEDOPLAN Bielefeld, Eberhard Wolff

Citation preview

Page 1: Spring Boot

Spring Boot

Eberhard Wolff Freelancer / Trainer

http://ewolff.com

Page 2: Spring Boot

Eberhard Wolff - @ewolff

What does it take to implement a

Java Web Application?

Page 3: Spring Boot

Eberhard Wolff - @ewolff

Any non-Java guys in the room?

Page 4: Spring Boot

Eberhard Wolff - @ewolff

Java

AppServer

Libraries

Build

WAR

Page 5: Spring Boot

Eberhard Wolff - @ewolff

Java

AppServer

Libraries

Build

WAR

#SRSLY?

Page 6: Spring Boot

Enter Spring Boot

Page 7: Spring Boot

Spring Boot Demo

Page 8: Spring Boot

Eberhard Wolff - @ewolff

Spring Boot •  Build much easier •  Supports Gradle & Ant, too •  Not limited to simple application •  Can add any other library

•  Application much easier to test, debug etc

•  Simple code

Page 9: Spring Boot

Let‘s add Spring Data

JPA!

Page 10: Spring Boot

Eberhard Wolff - @ewolff

Spring Data JPA •  Makes implementation of

repositories trivial

•  Just provide an interface

•  Needs JPA infrastructure of course

Page 11: Spring Boot

Spring Boot + Spring Data JPA Demo

Page 12: Spring Boot

Eberhard Wolff - @ewolff

Behind the Scenes •  DataSource for HSQL created •  JPA infrastructure created •  Thymeleaf infrastructure created •  Can also use JSP, Velocity,

Freemarker, Groovy templates •  How does it work? •  Convention over configuration

Page 13: Spring Boot

Eberhard Wolff - @ewolff

Spring Boot •  Creates sensible infrastructure

defaults •  i.e. DataSource if HSQL is on the

classpath •  Done by *AutoConfiguration classes

Page 14: Spring Boot

Auto Configuration

Demo

Page 15: Spring Boot

Eberhard Wolff - @ewolff

Spring Boot Starter •  Support for specific frameworks

amqp

aop

batch

data-jpa data-mongodb data-rest

integration

jdbc mobile

redis

security test web websocket

actuator remote-shell

jetty tomcat

log4j logback

web services

social

elasticsearch Solr

Page 16: Spring Boot

Spring Boot for Dev

Page 17: Spring Boot

Eberhard Wolff - @ewolff

Dev •  Turn Around

•  Thymeleaf Templates can be changed on the fly

•  …same with class files •  Spring Loaded makes reloading

more powerful

Page 18: Spring Boot

Spring Bootfor DevDemo

Page 19: Spring Boot

Spring Boot for Ops

Page 20: Spring Boot

Eberhard Wolff - @ewolff

CRaSH Shell •  Ever ssh’d into your application? •  Enter CRaSH •  External library integrated into

Spring Boot •  Alternative approach to operations

Page 21: Spring Boot

Spring BootCRaSH Demo

Page 22: Spring Boot

Eberhard Wolff - @ewolff

Actuator •  Provide information about the

application •  Via http / JSON •  Can be evaluated by monitoring

tools etc. •  Another alternative approach to

monitoring

Page 23: Spring Boot

Spring BootActuator

Demo

Page 24: Spring Boot

Eberhard Wolff - @ewolff

Deploy •  Just package everything in an

executable JAR •  …or a WAR

•  Based on Maven or Gradle

•  Build in configuration (YAML, properties etc.)

Page 25: Spring Boot

Spring BootDeploy Demo

Page 26: Spring Boot

Eberhard Wolff - @ewolff

Conclusion •  Easy to start •  Can add libraries and features as

needed •  Dev: Quick turn around •  Ops: Integrated monitoring •  Ops: Easy deployment •  Didn’t show Groovy support

Page 27: Spring Boot

Eberhard Wolff - @ewolff

Links http://start.spring.io/ http://projects.spring.io/spring-boot/ https://github.com/spring-projects/spring-boot https://github.com/ewolff/spring-boot-demos https://spring.io/guides/gs/spring-boot/ https://spring.io/guides/gs/actuator-service/ https://spring.io/guides/gs/spring-boot-cli-and-js/

Page 28: Spring Boot

Eberhard Wolff - @ewolff

Thank You!!