introduksjon til spring boot

14
Introduksjon til Spring Boot Henrik Schwarz – BouvetONE – 11.06.2014 1

Upload: henrik-schwarz

Post on 27-Jun-2015

105 views

Category:

Software


1 download

DESCRIPTION

Introduksjon til Spring Boot

TRANSCRIPT

Page 1: Introduksjon til Spring Boot

1

Introduksjon til Spring BootHenrik Schwarz – BouvetONE – 11.06.2014

Page 2: Introduksjon til Spring Boot

2

Om meg

• Java-utvikler og arkitekt

• For tiden på prosjekt hos Forsvaret

Page 3: Introduksjon til Spring Boot

3

Utgangspunkt

• Enterprise-applikasjoner basert på Maven/Spring inneholder ofte mye XML

• Komplisert dependency management• Mye “boiler-plate” konfigurasjon, kan

være vanskelig å vedlikeholde • Utvikling av webapps forutsetter

kjennskap til servlet spec (web.xml etc.)

• Kan ta flere dager bare å sette opp et prosjekt!

Page 4: Introduksjon til Spring Boot

4

Micro Services

• Selskaper som Google og Amazon beveger seg bort fra monolittiske arkitekturer

• Trend: Micro Service arkitektur og REST• Dekomponere en applikasjon i løst koblede

tjenester (ofte REST-grensesnitt)• Micro Services er små og gjør en ting • Deployeres som selvstendige prosesser

• Finnes det et godt egnet verktøy som kan understøtte utvikling av Micro Services?

Page 5: Introduksjon til Spring Boot

5

Spring IO

Page 6: Introduksjon til Spring Boot

6

Spring Boot

• Nytt Spring-prosjekt som skal gjøre det mer effektivt å utvikle Spring-applikasjoner

• Enkelt å lage standalone Spring-apps som kan kjøres uten app-server

• Spring Boot ble lansert 1. april i år• Følger med CLI og god støtte for

Groovy• Gjeldende versjon er 1.1.0

Page 7: Introduksjon til Spring Boot

7

Forenklet dependency management<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>

• Sett med Maven starter pom’er• Tar inn anbefalte avhengigheter• Gjør det lett å komme i gangWeb Jetty eller Tomcat + Spring MVC

Data-jpa Hibernate + Spring Data + JSR 303 annotations

Security Spring Security

… …

Page 8: Introduksjon til Spring Boot

8

Forenklet konfigurasjon

• @EnableAutoConfiguration• Auto-konfigurasjon basert på

avhengigheter som finnes på classpath• Nødvendige beans blir konfigurert med

“sensible defaults”• Convention over configuration• Implementert for en rekke anbefalte

rammeverk som fungerer godt sammen

• Enkel overriding av defaults• Ikke behov for web.xml

Page 9: Introduksjon til Spring Boot

9

Forenklet deployment

• Spring-boot-maven-plugin• Pakker kjørbar JAR-fil• Kjøres med java –jar kommandoen

(embedded Jetty eller Tomcat)• Ingen appserver nødvendig• Mulighet for ekstern konfigurasjon• Ingen utpakking av filer

Page 10: Introduksjon til Spring Boot

10

Management endpoints

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency>

• /health skal returnere “ok” • /metrics tellere og statistikk• /dump thread dump• /trace logger• /beans oversikt over bønner• /env environment

variabler

Page 11: Introduksjon til Spring Boot

11

Tid for demo!

Page 12: Introduksjon til Spring Boot

12

Fordeler

• Ingen kodegenerering eller behov for XML

• Minimalt med boilerplate konfigurasjon• Enkelt å override defaults• Gjør det raskt å komme i gang med

Spring• Kjørbar JAR: ikke behov for app-server• Kan også pakke klassisk WAR• Innebygde management endpoints• Lett å lage RESTful web services• Enkel deployment til Cloud (PaaS)

Page 13: Introduksjon til Spring Boot

13

Ulemper

• Man må godta litt “magi”• Mister litt kontroll• Auto-konfigurasjon støttes

foreløpig bare av utvalgte rammeverk

Page 14: Introduksjon til Spring Boot

14

Konklusjon

• Ser veldig lovende ut!• Perfekt for Micro Services og REST• Skal bli den anbefalte måten å lage

Spring applikasjoner på i fremtiden