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. 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?
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
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. 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
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. Ulemper
13
• Man må godta litt “magi”
• Mister litt kontroll
• Auto-konfigurasjon støttes foreløpig bare
av utvalgte rammeverk
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
Notes de l'éditeur
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