Spring Boot Meetup

Spring Boot Oktober

Java Spring Boot

Ook in oktober gaan we in de Java MeetUp door met Spring Boot.  Op 7 oktober ging Vishal Shinde in op externe configuraties en de actuator.  Lees de highlights of bekijk onze Java-expertise.

Java expertise Aanmelden MeetUp

Externe Services

Veel applicaties maken gebruik van externe services, zoals een database, logging servers of schedulers. Veelal zijn deze services niet hetzelfde in een ontwikkel- en productieomgeving. Bij het ontwikkelen van je Spring Boot applicatie kun je bijvoorbeeld gebruik maken van een database op je eigen ontwikkelomgeving, terwijl de database in de productieomgeving (hopelijk) op een toegewijde cloud/on-premise server draait. 

Externaliseren van configuraties

Het zou extreem veel werk zijn als we bij iedere omgevingswissel die configuraties opnieuw moeten verwerken in de programmacode. Een oplossing voor dit probleem is het externaliseren van deze configuraties. Op deze manier kunnen configuraties "overridden" worden, en is het hercompileren van code niet nodig.  Spring Boot geeft je een aantal opties om dit te doen, waaronder het ‘injecten’ van configuraties als command-line argument, environment variables in een JSON, of Spring Profiles. De meeste omgevingen werken met de laatste. Een Profile kan een properties- of yml bestand zijn. In de basis doen ze dezelfde dingen, maar toch zijn er wat verschillen tussen properties en yml files. 

Java Spring Boot

 

Java Spring Boot

Zoals je ziet is een YAML-file hiërarchisch en blijft daardoor goed leesbaar bij veel application properties. Andere ‘voordelen’ van een YAML zijn de type-safety en de mogelijkheid om meerdere profielen te definiëren in hetzelfde bestand.   

Properties kunnen ingeladen worden met o.a. annotations, zoals de ‘classic’ @Value:

Java Spring Boot

Veel developers zullen gelijk een probleem zien in de bovenstaande code. Wat als de property key veranderd? Als deze key op meerdere plekken gebruikt wordt, dan moet het overal aangepast worden!

Spring Boot heeft hiervoor de @ConfigurationProperties annotation in het leven geroepen. Door het plaatsen van deze annotation boven een @Component Class, kunnen properties heel eenvoudig naar een POJO gemapt worden. 

Java Spring Boot

Vervolgens kan deze bean overal in je Spring Boot project geïnjecteerd worden, en kun je met de getter de value van de property ophalen. 

Java Spring Boot

De Spring Actuator biedt production-ready monitoring en management features, zoals health-checks, metrics en applicatie info. Via HTTP endpoints of JMX kunnen deze features benaderd worden. De actuator kan aan een project toegevoegd worden door de spring-boot-starter-actuator dependency te importeren in Maven of Gradle. Vervolgens hoeft eigenlijk niets meer gedaan te worden. In de officiele documentatie van Spring Boot staat aangegeven welke endpoints default beschikbaar zijn, en welke handmatig toegevoegd of uitgesloten kunnen worden. 

Afsluitende Spring Boot Sessie

Op 14 oktober is de laatste sessie van de Sogeti Spring Boot maand. Vishal gaat tijdens de Java MeetUp verder over het testen, packagen en deployen van de Spring Boot applicatie. Wil je hier ook bij zijn? Iedereen is van harte welkom!

Aanmelden Java MeetUp

De sessie van september is hier terug te lezen.

Lees de highlights

Kan ik je helpen?