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
• 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
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

Viewers also liked

Nubersia - Servicio DevOps Team
Nubersia - Servicio DevOps TeamNubersia - Servicio DevOps Team
Nubersia - Servicio DevOps Team
Lluís Matavacas Navas
 
Africanmasks
Africanmasks Africanmasks
Africanmasks
cisenberg2
 
Motif color wheel
Motif color wheelMotif color wheel
Motif color wheelcisenberg2
 
De uitdagingen van de Vlaamse en de internationale landbouw
De uitdagingen van de Vlaamse en de internationale landbouwDe uitdagingen van de Vlaamse en de internationale landbouw
De uitdagingen van de Vlaamse en de internationale landbouw
Agribusinessclub
 
Soporte pedagógico
Soporte pedagógicoSoporte pedagógico
Soporte pedagógico
Hipolito Segura
 
AXXIS bikes brochure 2015
AXXIS bikes brochure 2015AXXIS bikes brochure 2015
AXXIS bikes brochure 2015
Jose Luis Guerrero Gomez
 
Polynomials
PolynomialsPolynomials
Polynomials
RACSOelimu
 
Matt W moore
Matt W  mooreMatt W  moore
Matt W moore
cisenberg2
 
Menjelaskan sistem eksresi
Menjelaskan sistem eksresiMenjelaskan sistem eksresi
Menjelaskan sistem eksresi
Iqbal R
 
Science fun
Science funScience fun
Science fun
MissyLeeQ
 
Proposal of “Large Space Cooling” by MOISTURE MIST
Proposal of “Large Space Cooling” by MOISTURE MISTProposal of “Large Space Cooling” by MOISTURE MIST
Proposal of “Large Space Cooling” by MOISTURE MIST
Shinichi Fukuyama
 
Isabel y adriana Elementos de un sistema de computación
Isabel y adriana Elementos de un sistema de computaciónIsabel y adriana Elementos de un sistema de computación
Isabel y adriana Elementos de un sistema de computación
IsabelPN
 
Викоолистання ІКТ
Викоолистання ІКТВикоолистання ІКТ
Викоолистання ІКТ
marinakill
 
Cook book -7G Media
Cook book -7G MediaCook book -7G Media
Cook book -7G Media
7gmedia
 
Sistem Informmasi Kesehata - Rekam Medis
Sistem Informmasi Kesehata - Rekam MedisSistem Informmasi Kesehata - Rekam Medis
Sistem Informmasi Kesehata - Rekam Medis
Yahya_Vy_01
 
Enzymes
EnzymesEnzymes
Enzymes
AngelaMcarr
 
Roylichtenstein
RoylichtensteinRoylichtenstein
Roylichtenstein
cisenberg2
 

Viewers also liked (18)

Nubersia - Servicio DevOps Team
Nubersia - Servicio DevOps TeamNubersia - Servicio DevOps Team
Nubersia - Servicio DevOps Team
 
Africanmasks
Africanmasks Africanmasks
Africanmasks
 
Motif color wheel
Motif color wheelMotif color wheel
Motif color wheel
 
De uitdagingen van de Vlaamse en de internationale landbouw
De uitdagingen van de Vlaamse en de internationale landbouwDe uitdagingen van de Vlaamse en de internationale landbouw
De uitdagingen van de Vlaamse en de internationale landbouw
 
Soporte pedagógico
Soporte pedagógicoSoporte pedagógico
Soporte pedagógico
 
AXXIS bikes brochure 2015
AXXIS bikes brochure 2015AXXIS bikes brochure 2015
AXXIS bikes brochure 2015
 
Polynomials
PolynomialsPolynomials
Polynomials
 
Matt W moore
Matt W  mooreMatt W  moore
Matt W moore
 
Menjelaskan sistem eksresi
Menjelaskan sistem eksresiMenjelaskan sistem eksresi
Menjelaskan sistem eksresi
 
Untitled Presentation
Untitled PresentationUntitled Presentation
Untitled Presentation
 
Science fun
Science funScience fun
Science fun
 
Proposal of “Large Space Cooling” by MOISTURE MIST
Proposal of “Large Space Cooling” by MOISTURE MISTProposal of “Large Space Cooling” by MOISTURE MIST
Proposal of “Large Space Cooling” by MOISTURE MIST
 
Isabel y adriana Elementos de un sistema de computación
Isabel y adriana Elementos de un sistema de computaciónIsabel y adriana Elementos de un sistema de computación
Isabel y adriana Elementos de un sistema de computación
 
Викоолистання ІКТ
Викоолистання ІКТВикоолистання ІКТ
Викоолистання ІКТ
 
Cook book -7G Media
Cook book -7G MediaCook book -7G Media
Cook book -7G Media
 
Sistem Informmasi Kesehata - Rekam Medis
Sistem Informmasi Kesehata - Rekam MedisSistem Informmasi Kesehata - Rekam Medis
Sistem Informmasi Kesehata - Rekam Medis
 
Enzymes
EnzymesEnzymes
Enzymes
 
Roylichtenstein
RoylichtensteinRoylichtenstein
Roylichtenstein
 

Similar to BOOTylicious Spring

Kako izvuci (naj)vise iz vaseg share pointa 2013
Kako izvuci (naj)vise iz vaseg share pointa 2013Kako izvuci (naj)vise iz vaseg share pointa 2013
Kako izvuci (naj)vise iz vaseg share pointa 2013
Matija Blagus
 
Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)
IT Showoff
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?
Denis Kranjčec
 
JavaCro14: Pakiranje i instalacija JEE rješenja
JavaCro14: Pakiranje i instalacija JEE rješenjaJavaCro14: Pakiranje i instalacija JEE rješenja
JavaCro14: Pakiranje i instalacija JEE rješenja
Miroslav Resetar
 
Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.
Mario Kušek
 

Similar to BOOTylicious Spring (6)

Kako izvuci (naj)vise iz vaseg share pointa 2013
Kako izvuci (naj)vise iz vaseg share pointa 2013Kako izvuci (naj)vise iz vaseg share pointa 2013
Kako izvuci (naj)vise iz vaseg share pointa 2013
 
Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)
 
JavaCro'14 - Packaging and installing of the JEE solution – Miroslav Rešetar
JavaCro'14 - Packaging and installing of the JEE solution – Miroslav RešetarJavaCro'14 - Packaging and installing of the JEE solution – Miroslav Rešetar
JavaCro'14 - Packaging and installing of the JEE solution – Miroslav Rešetar
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?
 
JavaCro14: Pakiranje i instalacija JEE rješenja
JavaCro14: Pakiranje i instalacija JEE rješenjaJavaCro14: Pakiranje i instalacija JEE rješenja
JavaCro14: Pakiranje i instalacija JEE rješenja
 
Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.Spring - preddiplomski 2018./2019.
Spring - preddiplomski 2018./2019.
 

BOOTylicious Spring

Editor's Notes

  1. Ja sam Karlo, danas ćemo pričati o.. Bla bla
  2. Priča o Springu, Spring sustavu i gdje se tu nalazi Spring Boot u odnosu na ostale komponente
  3. -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
  4. Pričati o serverima kako se aplikacija pokreće, kako se može pretvoriti u war, maven plugin, problemi kod deploya na druge servere?
  5. 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
  6. 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
  7. 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...
  8. Š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
  9. Objasniti na koje sve načine je moguće overridati konfiguraciju koja je po defaulut u text file-u
  10. 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
  11. 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
  12. Objasniti što je actuator, pojasniti pojedinačno sto svaki endpoint daje korisniku, sto kroz njega vidi i zasto je koristan
  13. Pojasniti kako Boot olaksava testiranje (automatska konf. Dependecya i Contexta) i kako se testira na embedded serveru
  14. 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
  15. Ne trebas cak niti kreirati svoj projekt i dodavati Starter pomove, initializr je klikalica koja to radi za tebe
  16. Loaded je za hot reload, par linija XML-a i development postaje daleko produktivnij i ugodniji
  17. Definitivno pogledati Project sagan, spring.io portal, good practices – tak to treba izgledat
  18. Ukratko posumirati svaku od ovih tocaka i objasniti cime je potkrijepljena