Spring Boot September

Spring Boot Meetup

Introductie Spring Boot

Tijdens de Java Meetup van 30 september nam Vishal Shinde een grote groep geïnteresseerden mee in een introductie van Java Spring Boot. Lees de highlights of bekijk onze Java-expertise.

Java-expertise Aanmelden Meetup

Spring Boot MeetUp

De Sogeti Java MeetUp staat deze weken in het teken van Spring Boot, het meest  populaire Java framework. In drie sessies bespreekt architect Vishal Shinde, de belangrijkste features. Eerste avond gemist? Geen probleem. Sven de Boer, Java Developer, heeft de highlights van 30 september op een rij gezet. 

Voordelen Spring Boot

Spring Boot is ontstaan uit het Spring Framework, na commentaar dat Spring veel te complex zou zijn voor nieuwe developers. Tegenwoordig is Spring Boot uitgegroeid tot een standaard voor veel nieuwe projecten omdat het een aantal grote voordelen heeft ten opzichte van Spring: 

  • Spring Boot helpt bij het bootstrappen van gedefinieerde componenten, wat resulteert in minder boiler-plate code en configuraties. 
  • Spring Boot biedt standaard configuraties. 
  • Spring Boot komt out-of-the-box met features geschikt voor een productie-omgeving, zoals metrics, healthchecks en een embedded webserver. 
  • Spring Boot heeft zijn eigen devtools package om te helpen bij het ontwikkelen. Met deze devtools wordt zelfs hot-reloading een mogelijkheid.     

Opzetten Spring project

Een Spring project kan heel simpel opgezet worden met de Spring Initializr, die te gebruiken is via https://start.spring.io/ of je IDE. 

initializer spring boot


Met de Initializr kun je de basis van een Spring Boot applicatie vormgeven, door een programmeertaal en build automation tool te kiezen. Ook kunnen hier al dependencies toegevoegd worden, zoals de eerdergenoemde DevTools of JPA.  Ieder Spring Boot project heeft als basis de @SpringBootApplication annotation op de class met de main method.  

spring boot


Bij het runnen van deze main method, bootstrapt Spring Boot de volledige applicatie met alle componenten, services en configuraties die door default, of door de developer, gedefinieerd zijn. Dit doet Spring door eerst een Application Context te creëren. Vervolgens vindt de autodiscovery van componenten plaats dankzij de @ComponentScan. Daarna worden default configuraties meegenomen in het bootstrappen. Spring kijkt hiervoor naar alle dependencies die gevonden worden in de classpath. Als laatste wordt de embedded servlet container opgestart, mits er een web dependency wordt gevonden. 

Autoconfiguration

Een van de meest interessante features van Spring Boot is de autoconfiguration. 
Spring kent 3 strategieën voor autoconfiguratie: 
1.    Aanwezigheid/Afwezigheid van JARs
2.    Aanwezigheid/Afwezigheid van Beans
3.    Aanwezigheid/Afwezigheid van Properties
Als er bijvoorbeeld een datasource property in de application.properties/application.yml wordt gevonden, dan wordt de applicatie geconfigureerd voor database toegang en hoeft de developer zelf weinig tot niets te doen. Dan worden vrijwel alle basiscomponenten zoals bijvoorbeeld Entitymanagers en databaseconnecties klaargezet voor gebruik.  Het kan natuurlijk voorkomen dat een developer zijn eigen datasource configuratie wil gebruiken, en niet de standaard van Spring. Om de standaard configuratie “uit te zetten”, kan hij in de @SpringBootApplication annotation in de main class een exclude parameter toevoegen, die de desbetreffende configuratie class meekrijgt: 

Spring Boot autoconfiguration

 
Nu kan een eigen DataSource configuratie meegenomen worden in het boostrap-proces. Het is hierbij belangrijk om te weten dant user defined configuratieon beans eerder in het proces meegenomen worden dan de default autoconfiguraties van Spring Boot. 

Conditionele configuraties

Een andere feature van Spring Boot’s autoconfiguratie is het definiëren van conditionele configuraties, zoals beschreven in de eerdergenoemde strategieën. Door het toevoegen van de @Conditional annotaties kunnen Beans/Classes/Properties geladen worden als bepaalde beans/classes/properties wel of niet gevonden worden in de classpath.  

Spring Boot

 

Spring Boot

 

Volgende Meetup

Dit is slechts het topje van de ijsberg als het gaat om Spring Boot’s mogelijkheden! Op 7 en 14 oktober vervolgt Vishal zijn uiteg met externe configuraties, profiles en het deployen van een Spring Boot applicatie in een productieomgeving. Wil je hier ook bij zijn? Meld je vandaag nog aan!

Java-expertise Aanmelden Meetup

Kan ik je helpen?

Martien Verstralen Community Manager Java
Phone number: +31 886 606 600