Spring vs Spring boot
Blog

Spring vs Spring Boot

Spring vs Spring Boot. Hoe passen Spring en Spring Boot in het Java plaatje? Spring is het meest populaire framework voor Java en Spring Boot is een extra laagje op het framework. Meer hierover te weten willen komen? Deze blog ‘Spring vs Spring Boot’ vertelt je hier meer over!

Wat zijn Spring en Spring Boot? (for dummies)

Wie bij een (groot)zakelijk bedrijf een kijkje neemt in de systemen, heeft een grote kans daar meerdere Java applicaties tegen te komen. Java staat na zo’n dertig jaar ontwikkeling nog steeds hoog in de lijst van meest gebruikte programmeertalen voor de zakelijke markt. Een programmeur met kennis van en ervaring met Java zal dan ook zonder al teveel moeite een ruim aanbod van vacatures kunnen vinden.

De komst van frameworks heeft de positie van Java nog sterker gemaakt. Frameworks maken het ontwikkelen van complexe applicaties – en daar is grote vraag naar op de zakelijke markt – een stuk makkelijker en overzichtelijker.

Een framework is, simpel gezegd, het skelet waarop een applicatie uitgebouwd wordt. Het is de basisstructuur van een applicatie, samen met een set tools die de ontwikkeling van een applicatie makkelijker maken. Een framework neemt een hoop taken over die anders door de programmeur apart moeten worden gebouwd.

Hoe passen Spring en Spring Boot dan in dit plaatje? Spring is het meest populaire framework voor Java. Het beschikt over een groot aantal projecten dat de functionaliteit van het Spring Framework verder uitbreidt of toespitst op een specifiek doel. Spring Boot is een extra laagje op het framework dat nog meer taken uit handen neemt van de programmeur dan het framework zelf al doet, door een standaard configuratie van Spring aan te bieden.

Spring applicaties zijn terug te vinden in de backend van allerlei bedrijven en Spring wordt veel ingezet om o.a. APIs te bouwen.

Het verschil

Zoals zojuist al even werd benoemd is Spring Boot een extra laagje bovenop het bestaande Spring Framework. Het Spring Framework zelf biedt alle mogelijkheden om hetzelfde eindresultaat te bereiken als wat mogelijk is met het gebruik van Spring Boot. Het grote verschil is dat Spring Boot werkt op basis van een auto-configuratie.
Spring Boot is op het Spring Framework gebouwd om een vooraf geconfigureerd startpunt te hebben voor een applicatie. Razendsnel van start dus! Ook is met de komst van Spring Boot configuratie met XML langzamerhand verdwenen. Het Spring framework werkte met allerlei XML bestanden die allerlei configuraties bevatte. Dit kan nu gedaan worden met Java code en annotaties in die Java code. Spring framework developers voelden zich haast XML developers, en aan die kritieken is gehoor gegeven met de Java configuratie sinds Spring Boot.

Wat is het Spring Framework?

Het Spring Framework is een open-source framework dat gericht is op het creëren van enterprise applicaties met Java. Bonus: het werkt ook prima met gerelateerde talen zoals Kotlin (voor het ontwikkelen van Android applicaties) en Groovy.

Spring maakt gebruik van het Inversion of Control principe en dit speelt een zeer grote rol in hoe het framework zijn werk doet. Inversion of Control betekent dat de flow van de applicatie, zoals bepalen welke objecten nodig zijn op welk punt, wordt bepaald door het framework zelf, in plaats van dat de programmeur dit doet. Of, om specifiek te zijn; de Spring Container doet dit.
Een belangrijk onderdeel daarvan is Dependency Injection; Spring bouwt de instance van objecten op en geeft deze aan klasses die dit nodig hebben wanneer dat nodig is.

Dit is waar de magie van Spring naar voren komt in de vorm van Spring Containers en Spring Beans. Een Spring Bean is in zijn simpelste definitie een instance van een class die beheerd wordt door de Spring Container. De Spring Container is onderdeel van de core van het Spring Framework. Het is verantwoordelijk voor het managen van alle Spring Beans en de volledige uitvoer van Dependency Injection. Het creëert, verwijdert en initialiseert instances (Beans) waar nodig. Het zorgt er dus voor dat de instances van objecten op de juiste tijd op de juiste plek zijn.
Dit neemt niet alleen een hele lading werk uit de handen van de ontwikkelaar, het zorgt er ook voor dat het risico op fouten kleiner wordt.

Los daarvan beschikt het Spring Framework over een flinke hoeveelheid aan projecten die toe te voegen zijn aan de core van het Framework. Zo zijn er onder meer projecten zoals Spring Security (beveiliging, autorisatie, authenticatie), Spring Data (toegang tot data), Spring Integration (Enterprise Integration Patterns) en Spring Web Services. Dit is slechts een handjevol voorbeelden dus kijk vooral op de site van Spring voor een volledig overzicht!

Wat is Spring Boot?

Spring Boot is een extra laag bovenop het bestaande Spring Framework. Door middel van autoconfiguratie wordt een vooraf geconfigureerd startpunt voor een applicatie gemaakt. Hoe dit startpunt er precies uitziet en welke functionaliteit er aanwezig moet zijn, is te bepalen bij het aanmaken van een Spring Boot project. Er kunnen meerdere Spring projecten als dependencies worden toegevoegd aan je Spring Boot project.
Het is daarnaast mogelijk om toch ook nog eigen custom configuratie toe te passen door middel van annotations, deze zijn te herkennen aan dat ze beginnen met een @. XML configuratie is niet meer nodig. Het gebruik van het Spring Framework wordt dus een stuk simpeler wanneer je Spring Boot gebruikt. Het is ook zeer geschikt voor het schrijven van API’s

Beginnen met Spring Boot

Ben je enthousiast geworden over het Spring Framework en Spring Boot en wil je het zelf uit gaan proberen? Gelukkig is ook dit heel eenvoudig gemaakt. Beschik je over de Ultimate versie van Intellij IDEA, dan is het direct vanuit de IDE mogelijk om een nieuw Spring Boot project op te bouwen.
Gebruik je een andere IDE, of de Community versie van Intellij IDEA? Ook dan is het maken van je eerste Spring Boot project zo simpel dat je in een paar minuten van start kan.
Hiervoor heeft Spring de Spring Initializr beschikbaar gemaakt via https://start.spring.io

In de Spring Initializr kies je de specificaties van jouw project. Maven of Gradle? Java, Kotlin of Groovy? De huidige versie van Spring Boot of een specifieke andere versie?
Daarnaast geef je de metadata van je project in, kies je voor Jar of War packaging, kies je de Java versie die wordt gebruikt en welke dependencies je toe wilt voegen aan jouw specifieke project. Alles naar wens? Met een druk op de knop wordt jouw project gegenereerd en als zip bestand beschikbaar gesteld. Dit zip bestand hoef je alleen nog maar te importeren in jouw IDE en je kan aan de slag met je eerste Spring Boot applicatie.

Na het lezen van deze blog enthousiast geworden over Spring Boot? Check de vacatures hier of bekijk alle Java Developer Vacatures!

Meer artikelen