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 managemen...
Micro Services
4
• Selskaper som Google og Amazon beveger
seg bort fra monolittiske arkitekturer
• Trend: Micro Service ar...
Spring IO
5
Spring Boot
6
• Nytt Spring-prosjekt som skal gjøre det
mer effektivt å utvikle Spring-applikasjoner
• Enkelt å lage stand...
Forenklet dependency management
7
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter...
Forenklet konfigurasjon
8
• @EnableAutoConfiguration
• Auto-konfigurasjon basert på
avhengigheter som finnes på classpath
...
Forenklet deployment
9
• Spring-boot-maven-plugin
• Pakker kjørbar JAR-fil
• Kjøres med java –jar kommandoen
(embedded Jet...
Management endpoints
10
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator<...
Tid for demo!
11
Fordeler
12
• Ingen kodegenerering eller behov for XML
• Minimalt med boilerplate konfigurasjon
• Enkelt å override defaul...
Ulemper
13
• Man må godta litt “magi”
• Mister litt kontroll
• Auto-konfigurasjon støttes foreløpig bare
av utvalgte ramme...
Konklusjon
14
• Ser veldig lovende ut!
• Perfekt for Micro Services og REST
• Skal bli den anbefalte måten å lage Spring
a...
Upcoming SlideShare
Loading in …5
×

Introduksjon til Spring Boot

249 views

Published on

Introduksjon til Spring Boot

Published in: Software
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
249
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Mye XML: både dependency management og Spring-konfigurasjon
  • 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”
  • Kraftig redusert POM-fil!
  • 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.
  • Ingen kodegenerering som Spring Roo.
  • Hvis du blir svett av Springs @Autowired og @ComponentScan, så er kanskje ikke auto-konfigurasjon for deg
  • Introduksjon til Spring Boot

    1. 1. Introduksjon til Spring Boot Henrik Schwarz – BouvetONE – 11.06.2014 1
    2. 2. Om meg 2 • Java-utvikler og arkitekt • For tiden på prosjekt hos Forsvaret
    3. 3. 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!
    4. 4. 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?
    5. 5. Spring IO 5
    6. 6. 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
    7. 7. 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 … …
    8. 8. 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
    9. 9. 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
    10. 10. 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
    11. 11. Tid for demo! 11
    12. 12. 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)
    13. 13. Ulemper 13 • Man må godta litt “magi” • Mister litt kontroll • Auto-konfigurasjon støttes foreløpig bare av utvalgte rammeverk
    14. 14. Konklusjon 14 • Ser veldig lovende ut! • Perfekt for Micro Services og REST • Skal bli den anbefalte måten å lage Spring applikasjoner på i fremtiden

    ×