ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Introduksjon til Spring Boot
Henrik Schwarz ¨C BouvetONE ¨C 11.06.2014
1
Om meg
2
? Java-utvikler og arkitekt
? For tiden p? prosjekt hos Forsvaret
Utgangspunkt
3
? 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!
Micro Services
4
? 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?
Spring IO
5
Spring Boot
6
? 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
Forenklet dependency management
7
<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 gang
Web Jetty ellerTomcat + Spring MVC
Data-jpa Hibernate + Spring Data + JSR 303 annotations
Security Spring Security
¡­ ¡­
Forenklet konfigurasjon
8
? @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
Forenklet deployment
9
? Spring-boot-maven-plugin
? Pakker kj?rbar JAR-fil
? Kj?res med java ¨Cjar kommandoen
(embedded Jetty ellerTomcat)
? Ingen appserver n?dvendig
? Mulighet for ekstern konfigurasjon
? Ingen utpakking av filer
Management endpoints
10
<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
Tid for demo!
11
Fordeler
12
? 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)
Ulemper
13
? Man m? godta litt ¡°magi¡±
? Mister litt kontroll
? Auto-konfigurasjon st?ttes forel?pig bare
av utvalgte rammeverk
Konklusjon
14
? Ser veldig lovende ut!
? Perfekt for Micro Services og REST
? Skal bli den anbefalte m?ten ? lage Spring
applikasjoner p? i fremtiden

More Related Content

Introduksjon til Spring Boot

Editor's Notes

  • #4: Mye XML: b?de dependency management og Spring-konfigurasjon
  • #6: Ny plattform fra Spring Ny organisering av prosjektene Bedre dokumentasjon Masse guider! Vise side: http://spring.io/guides Open sourcet som en spring referanse app (kodenavn project Sagan). En rekke vanlige tasks er beskrevet, tar 15-30 min, de fleste er skrevet med Spring Boot! Boot ligger p? toppen -> skal gj?re det enklere ? bruke de velkjente Spring-prosjekter i ¡°foundation¡±
  • #8: Kraftig redusert POM-fil!
  • #9: Eksempel: Hvis Spring Security ligger p? classpath vil automatisk alle endepunkter sikres med basic authentication. Annet eks: hvis HSQLDB ligger p? classpath f?r man automatisk en in-memory DB.
  • #13: Ingen kodegenerering som Spring Roo.
  • #14: Hvis du blir svett av Springs @Autowired og @ComponentScan, s? er kanskje ikke auto-konfigurasjon for deg