SlideShare a Scribd company logo
BOOTylicious Spring
Karlo Novak, SV Group d.o.o.
karlo.novak@svgroup.hr
• Zašto Spring Boot?
• Standalone Spring aplikacije
• Konfiguracija
• Kako radi Spring Boot?
• Primjer REST servisa
• Spring Boot Actuator
• Testiranje
• Perspektiva
Sadržaj
BOOTylicious Spring
• Standalone aplikacije s ugrađenim serverom
spremne za produkciju:
– Metrike, health checkovi, remote spajanje na
server (SSH, Telnet) itd.
– Mikroservisi
• Konfiguracija bez XML-a
• Starter POM-ovi, lakši dependency management
• Rješava Spring boilerplate
Zašto Spring Boot?
Standalone Spring aplikacije
java –jar app.jar
SpringBootServletInitializer
app.war
Konfiguracija (1/5)
• Maven starter POM-ovi, dependecy
management
• Autokonfiguracija bez XML-a
– Opinionated
• Jednostavan override auto konfiguracije
• Eksterna konfiguracija
Konfiguracija (2/5)
Starter POM
Konfiguracija (3/5)
• Starter POM-ovi pokrivaju većinu ovisnosti:
– spring-boot-starter
– spring-boot-starter-web
– spring-boot-starter-thymeleaf
– spring-boot-starter-data-jpa
– spring-boot-starter-redis
– spring-boot-starter-social-facebook
Konfiguracija (4/5)
• application.properties ili application.yml
– spring.profiles.active
– logging.path
– server.port
– server.context-path
– spring.datasource.url=jdbc:mysql://localhost/test
• @Value("${server.port}")
Konfiguracija (5/5)
Default
application.
properties
OS
Java
system
JNDI
Command
line
Kako radi Spring Boot?
• @EnableAutoConfiguration
– Skeniranje classpatha, zaključivanje, instanciranje
objekata
– Npr. ako na classpathu pronađe Thymeleaf
automatski će kreirati view i view resolver, te
Spring template engine
– Daje prednost user beanovima
• NE GENERIRA KOD
BOOTylicious Spring
Primjer REST servisa
Spring Boot Actuator
• Nefunkcionalne pogodnosti za produkciju
• Dodaje HTTP endpointove:
– /beans
– /dump
– /health
– /info
– /metrics
– /trace
– /shutdown ...
Testiranje
• spring-boot-starter-test
• Spring Test, JUnit, Hamcrest, Mockito
• @SpringApplicationConfiguration
– Spring Boot konfiguracija ApplicationContext-a
• @IntegrationTest
– Za testiranje koristi embeddani server
Perspektiva
JHipster
Angular
Spring Boot
Netflix aktivno i intenzivno koristi
Spring Boot, uglavnom za razvoj
mikroservisa
I mi ga koristimo 
Nije mi to dosta
https://start.spring.io
Nije mi ni to dosta
• Spring Loaded
– Omogućuje hot reload aplikacije
– Prati promjene nad klasama, automatski ih
kompajlira i izmjenjuje
Dosta mi je..
https://github.com/spring-io/sagan
Zaključak
– Pojednostavljen razvoj
– Konfiguracija
– Fokus na aplikaciji
– Puštanje u produkciju
– Opinionated
– Deploy na aplikacijske
servere?
Spring Boot je i dalje Spring!
A sad vi...
karlo.novak@svgroup.hr

More Related Content

PDF
JavaCro'15 - BOOTylicious Spring - Karlo Novak
PPTX
(WS14) Tomislav Tipuric - Cloud kao aplikacijska platforma
PPT
Розвиток Української культури
PPTX
Piet mondrian
PPTX
Pneumonia
PDF
A Partner is Good to Have, but Difficult to Be
PDF
Numerical solutions
PPTX
Efusi Pleura
JavaCro'15 - BOOTylicious Spring - Karlo Novak
(WS14) Tomislav Tipuric - Cloud kao aplikacijska platforma
Розвиток Української культури
Piet mondrian
Pneumonia
A Partner is Good to Have, but Difficult to Be
Numerical solutions
Efusi Pleura

Viewers also liked (18)

PDF
Nubersia - Servicio DevOps Team
PPT
Africanmasks
PPT
Motif color wheel
PPTX
De uitdagingen van de Vlaamse en de internationale landbouw
DOCX
Soporte pedagógico
PDF
AXXIS bikes brochure 2015
PDF
Polynomials
PPTX
Matt W moore
DOCX
Menjelaskan sistem eksresi
PDF
Untitled Presentation
PPTX
Science fun
PDF
Proposal of “Large Space Cooling” by MOISTURE MIST
PPTX
Isabel y adriana Elementos de un sistema de computación
PDF
Викоолистання ІКТ
PDF
Cook book -7G Media
PPTX
Sistem Informmasi Kesehata - Rekam Medis
PPT
Enzymes
PPT
Roylichtenstein
Nubersia - Servicio DevOps Team
Africanmasks
Motif color wheel
De uitdagingen van de Vlaamse en de internationale landbouw
Soporte pedagógico
AXXIS bikes brochure 2015
Polynomials
Matt W moore
Menjelaskan sistem eksresi
Untitled Presentation
Science fun
Proposal of “Large Space Cooling” by MOISTURE MIST
Isabel y adriana Elementos de un sistema de computación
Викоолистання ІКТ
Cook book -7G Media
Sistem Informmasi Kesehata - Rekam Medis
Enzymes
Roylichtenstein
Ad

BOOTylicious Spring

Editor's Notes

  • #3: Ja sam Karlo, danas ćemo pričati o.. Bla bla
  • #4: Priča o Springu, Spring sustavu i gdje se tu nalazi Spring Boot u odnosu na ostale komponente
  • #5: -Standalone aplikacije idealne za mikroservisnu arhitekturu -Brzi start, pojednostavljena konfiguracija i dependency management -> brz skok na poslovnu logiku -Metrike omogućavaju brzo puštanje aplikacije u produkciju kroz riješen monitoring -Opinionated odgovara većini, ali moguće da u oderđenim slučajevima nije uopće iskoristivo
  • #6: Pričati o serverima kako se aplikacija pokreće, kako se može pretvoriti u war, maven plugin, problemi kod deploya na druge servere?
  • #7: Konfiguracija se odnosi na 2 stvari: -Dependency management koji kroz autokonfiguraciju kreira beanove i dependencye, olakšavaju ga Starter POMovi za pojedine tehnologije i quick start - Eksterna konfiguracija same aplikacije i njenog okružja
  • #8: Konfiguracija se odnosi na 2 stvari: -Dependency management koji kroz autokonfiguraciju kreira beanove i dependencye, olakšavaju ga Starter POMovi za pojedine tehnologije i quick start - Eksterna konfiguracija same aplikacije i njenog okružja
  • #9: Objasniti koji čemu služi i dočarati slušateljima koliko je jednostavno uključiti određeni dependency u aplikaciju i početi koristiti druge librarye, frameworke...
  • #10: Što je eksterna konfiguracija, staviti file na classpath, podrzava plain text ili YAML (snake yaml dependency) Radi se o autokonfiguriranom property source-u -> omogućava bindanje kroz Value i učitavanje eksternih parama iz Environemnta
  • #11: Objasniti na koje sve načine je moguće overridati konfiguraciju koja je po defaulut u text file-u
  • #12: EnableAutoConfiguration Objasniti da omogućava sken classpatha, te na temelju classpatha donošenje odluka o instanciranju dependency Beanova, objasniti i primjer, thyme u minimum konfi treba 3 beana, kako mi tu pomaze Spring boot? Spomenuti i SpringBootApplication, ali ga ne pojasniti, budemo na sljedecem slajdu di je primjer REST servisa - Ne generira kod, nije generator koda, već na temelju naputaka (classpath) donosi odluke o postavljanju aplikacije
  • #14: Objasniti SBA anotaciju, objedinjuje 3 najcesce anotacije EnableAutoConf, Configuration, ComponentScan, Pojasniti POM, RestController anotaciju i main metodu, moze i servis koji je klasika MVC servis
  • #15: Objasniti što je actuator, pojasniti pojedinačno sto svaki endpoint daje korisniku, sto kroz njega vidi i zasto je koristan
  • #16: Pojasniti kako Boot olaksava testiranje (automatska konf. Dependecya i Contexta) i kako se testira na embedded serveru
  • #17: Jhipster je bla bla bla.. Netflix koristi i to pise u bla bla bla.. I mi ga isto koristimo, deployamo na WAS Perspektiva je pozitivna, koristen je, nadogradivan, ukljucivan u velike projekte i sustave
  • #18: Ne trebas cak niti kreirati svoj projekt i dodavati Starter pomove, initializr je klikalica koja to radi za tebe
  • #19: Loaded je za hot reload, par linija XML-a i development postaje daleko produktivnij i ugodniji
  • #20: Definitivno pogledati Project sagan, spring.io portal, good practices – tak to treba izgledat
  • #21: Ukratko posumirati svaku od ovih tocaka i objasniti cime je potkrijepljena