Spring of Spring Boot
Madelief
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 op de lijst van meest gebruikte programmeertalen voor de zakelijke markt. Een programmeur met kennis van en ervaring met Java zal dan ook zonder al te veel 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 wordt uitgebouwd. 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 die de functionaliteit van het Spring Framework verder uitbreiden of toespitsen 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 standaardconfiguratie 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.
Wat zijn de grootste overeenkomsten en verschillen. En op basis waarvan maak je uiteindelijk deze keuze? Wij lichten het hieronder voor je toe!
HET VERSCHIL:
Zoals zojuist al benoemd, is Spring Boot een extra laagje boven op 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 de configuratie met XML langzamerhand verdwenen. Het Spring framework werkte met allerlei XML-bestanden die allerlei configuraties bevatten. 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?
Kortgezegd is dat 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 principe van Inversion of Control principe, wat een zeer grote rol speelt 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.
Dependency Injection:
Een belangrijk onderdeel daarvan is Dependency Injection; Spring bouwt de instance van objecten op en geeft deze aan klassen 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 verkleint ook het risico op fouten.
Los daarvan beschikt het Spring Framework over een flinke hoeveelheid 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?
We kunnen dat het beste beschrijven als een extra laag boven op 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 zo dus een stuk simpeler. Het is ook zeer geschikt voor het schrijven van API’s.
BEGINNEN MAAR:
Ben je enthousiast geworden en wil je het zelf uitproberen? 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 Initializer 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 kunt aan de slag met je eerste Spring Boot applicatie.
Check de vacatures hier: