SlideShare une entreprise Scribd logo
1  sur  14
Introduksjon til Spring Boot
Henrik Schwarz – BouvetONE – 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 –jar 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

Contenu connexe

Similaire à Introduksjon til Spring Boot

GoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen WahlbergGoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen WahlbergFriprogsenteret
 
Kundeseminar April 2014, Nytt i CorePublish
Kundeseminar April 2014, Nytt i CorePublishKundeseminar April 2014, Nytt i CorePublish
Kundeseminar April 2014, Nytt i CorePublishCoreTrek
 
Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列yoyojacky
 
Enkelhet, testbarhet og skalerbarhet med grid bakgrunn
Enkelhet, testbarhet og skalerbarhet med grid   bakgrunnEnkelhet, testbarhet og skalerbarhet med grid   bakgrunn
Enkelhet, testbarhet og skalerbarhet med grid bakgrunnTormod Varhaugvik
 
GoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenGoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenFriprogsenteret
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksisHåvard Wigtil
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattformHåvard Wigtil
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattformHåvard Wigtil
 
Firefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattformFirefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattformHåvard Wigtil
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Morten Bergset
 
Javascript tar hevn
Javascript tar hevnJavascript tar hevn
Javascript tar hevnfossmo
 
20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februarSturla Grelland
 
Beste praksis for å implementere ArcGIS i din virksomhet - BK2016
Beste praksis for å implementere ArcGIS i din virksomhet - BK2016Beste praksis for å implementere ArcGIS i din virksomhet - BK2016
Beste praksis for å implementere ArcGIS i din virksomhet - BK2016Geodata AS
 
Grunnsikring av windows i praksis presentasjon
Grunnsikring av windows i praksis   presentasjonGrunnsikring av windows i praksis   presentasjon
Grunnsikring av windows i praksis presentasjonKarim El-Melhaoui
 
Blazor - en kjapp intro
Blazor - en kjapp introBlazor - en kjapp intro
Blazor - en kjapp introRunegri
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous DeliveryKnut Haugen
 
Ikke test Puppet-koden din
Ikke test Puppet-koden dinIkke test Puppet-koden din
Ikke test Puppet-koden dinJan Ivar Beddari
 

Similaire à Introduksjon til Spring Boot (20)

Hele butikken i skyen
Hele butikken i skyenHele butikken i skyen
Hele butikken i skyen
 
AWS på kartet
AWS på kartetAWS på kartet
AWS på kartet
 
GoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen WahlbergGoOpen 2010: Jorgen Wahlberg
GoOpen 2010: Jorgen Wahlberg
 
Kundeseminar April 2014, Nytt i CorePublish
Kundeseminar April 2014, Nytt i CorePublishKundeseminar April 2014, Nytt i CorePublish
Kundeseminar April 2014, Nytt i CorePublish
 
Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列Jacky 原创我用linux 实现你的梦想之rtc服务系列
Jacky 原创我用linux 实现你的梦想之rtc服务系列
 
Enkelhet, testbarhet og skalerbarhet med grid bakgrunn
Enkelhet, testbarhet og skalerbarhet med grid   bakgrunnEnkelhet, testbarhet og skalerbarhet med grid   bakgrunn
Enkelhet, testbarhet og skalerbarhet med grid bakgrunn
 
GoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug HanssenGoOpen 2010: Håvard Haug Hanssen
GoOpen 2010: Håvard Haug Hanssen
 
Fra silo til micro services
Fra silo til micro servicesFra silo til micro services
Fra silo til micro services
 
Progressive web applications i praksis
Progressive web applications i praksisProgressive web applications i praksis
Progressive web applications i praksis
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
 
Firefox os og web som mobil plattform
Firefox os og web som mobil plattformFirefox os og web som mobil plattform
Firefox os og web som mobil plattform
 
Firefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattformFirefox OS - og web som mobil plattform
Firefox OS - og web som mobil plattform
 
Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3Responsiv design og Bootstrap 3
Responsiv design og Bootstrap 3
 
Javascript tar hevn
Javascript tar hevnJavascript tar hevn
Javascript tar hevn
 
20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar20130212 firstpoint citrix seminar 12 februar
20130212 firstpoint citrix seminar 12 februar
 
Beste praksis for å implementere ArcGIS i din virksomhet - BK2016
Beste praksis for å implementere ArcGIS i din virksomhet - BK2016Beste praksis for å implementere ArcGIS i din virksomhet - BK2016
Beste praksis for å implementere ArcGIS i din virksomhet - BK2016
 
Grunnsikring av windows i praksis presentasjon
Grunnsikring av windows i praksis   presentasjonGrunnsikring av windows i praksis   presentasjon
Grunnsikring av windows i praksis presentasjon
 
Blazor - en kjapp intro
Blazor - en kjapp introBlazor - en kjapp intro
Blazor - en kjapp intro
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Ikke test Puppet-koden din
Ikke test Puppet-koden dinIkke test Puppet-koden din
Ikke test Puppet-koden din
 

Introduksjon til Spring Boot

Notes de l'éditeur

  1. Mye XML: både dependency management og Spring-konfigurasjon
  2. 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”
  3. Kraftig redusert POM-fil!
  4. 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.
  5. Ingen kodegenerering som Spring Roo.
  6. Hvis du blir svett av Springs @Autowired og @ComponentScan, så er kanskje ikke auto-konfigurasjon for deg