Wat is Spring Boot?
Spring Boot is voor mij een van de meest complete frameworks binnen het Java- en Kotlin-ecosysteem. Het framework geeft je enorm veel mogelijkheden om backend-applicaties te bouwen zonder dat je voor ieder onderdeel opnieuw het wiel hoeft uit te vinden.
Waar ik Quarkus vooral waardeer om snelheid en vrijheid, waardeer ik Spring Boot juist om volwassenheid, stabiliteit en het enorme ecosysteem eromheen.
Hoe ik Spring Boot gebruik
Ik gebruik Spring Boot voornamelijk in combinatie met Kotlin. Zeker binnen grotere backend-platformen vind ik die combinatie prettig, omdat Kotlin veel boilerplate uit Java wegneemt terwijl je wel volledig gebruik kunt maken van het Spring-ecosysteem.
Recent heb ik bij ANWB veel met Spring Boot en Kotlin gewerkt binnen het Car Platform. Daar werkte ik aan een backend die gebruikmaakt van MongoDB, Redis en verschillende externe databronnen. Binnen dat platform heb ik onder andere gewerkt aan de overgang van een meer monolithische opzet naar een duidelijker event-driven architectuur.
Waarom ik graag met Spring Boot werk
Voor mij zijn er vooral drie sterke punten:
Volwassen: voor vrijwel ieder backend-vraagstuk bestaat een goed ondersteunde oplossing.
Compleet ecosysteem: security, data access, messaging, web en observability zijn eenvoudig met elkaar te combineren.
Sterk voor grotere platformen: wanneer een applicatie veel integraties en verschillende verantwoordelijkheden heeft, geeft Spring veel structuur.
Spring Boot geeft daardoor veel zekerheid. Je weet dat veel problemen al eerder zijn opgelost en dat daar volwassen tooling voor beschikbaar is.
Spring Boot binnen microservices
Ik gebruik Spring Boot zeker voor microservices, maar het is voor mij niet automatisch de eerste keuze voor iedere nieuwe kleine service.
Voor compacte microservices kies ik tegenwoordig sneller voor Quarkus. Wanneer een service onderdeel is van een groter bestaand Spring-landschap of veel gebruikmaakt van het Spring-ecosysteem, kan Spring Boot juist de logischere keuze zijn.
Frameworkkeuze moet voor mij uiteindelijk passen bij het systeem en het team. Niet andersom.
Mijn recente ervaring met Spring Boot
Mijn meest recente ervaring komt vanuit ANWB, waar Spring Boot met Kotlin de basis vormt voor verschillende backend-componenten binnen het Car Platform.
Daar heb ik onder andere gewerkt met asynchrone processen, Kotlin Coroutines, MongoDB en Redis Streams. Vooral bij systemen met veel externe databronnen merk je hoe belangrijk het is dat je applicatiestructuur duidelijk blijft en foutafhandeling goed is ingericht. Spring Boot biedt daar een volwassen basis voor.
Veelgestelde vragen die ik krijg over Spring Boot
Gebruik je Spring Boot met Java of Kotlin?
Tegenwoordig voornamelijk Kotlin. Ik heb een sterke Java-achtergrond, maar Kotlin maakt Spring-code voor mij compacter en prettiger leesbaar.
Waarom Spring Boot in plaats van Quarkus?
Voor grotere platformen en bestaande Spring-omgevingen kies ik regelmatig Spring Boot. Voor nieuwe compacte microservices heeft Quarkus meestal mijn voorkeur.
Gebruik je Spring Boot voor event-driven systemen?
Ja. Spring Boot werkt prima binnen event-driven architecturen. Recent heb ik bij ANWB bijvoorbeeld gewerkt met Redis Streams en asynchrone verwerking binnen een Spring Kotlin-platform.
Is Spring Boot niet te zwaar voor microservices?
Dat hangt volledig af van de service. Voor een kleine gespecialiseerde service kan een lichter framework logischer zijn. Voor een service die veel functionaliteit uit het Spring-ecosysteem gebruikt, kan Spring Boot juist eenvoudiger en duurzamer zijn.
Zou je een nieuw project nog met Spring Boot starten?
Zeker. Maar ik kies het bewust. Voor mij gaat het niet om welk framework technisch het populairst is, maar welk framework het systeem op lange termijn het eenvoudigst en onderhoudbaarst houdt.