Het werkproces aanzienlijk vereenvoudigen met Spring voor Java
In 2002 stelde de Australische ontwikkelaar Rod Johnson de code van de Java-Framework Interface21 voor in zijn publicatie Expert One-on-One J2EE Design and Development. Hij had de code zelf geschreven voor gebruik in zijn eigen projecten. Op basis van deze code ontwikkelde hij later samen met andere programmeurs het Spring Framework. In juni 2003 werd het framework voor het eerst in de gratis licentie Apache 2.0 op SourceForge gepubliceerd en geldt tot op de dag van vandaag als een van de beste oplossingen voor het ontwikkelen van bedrijfstoepassingen in Java . Het opensource-framework schrapt sindsdien de zwakke punten en beperkingen van de standaard ontwikkelaarsomgeving J2EE (ook bekend als ‘Java platform’) en van het componentmodel Enterprise JavaBeans (EJB) door hun complexiteit aanzienlijk te verminderen.
Hosting aanbiedingen bekijken
Spring: inleiding in de belangrijkste modellen

Spring is de perfecte keuze voor de meest uiteenlopende toepassingen in Java. Dit is in de eerste plaats te danken aan de modulaire opbouw van het framework. Er staan je zo’n 20 modules ter beschikking bij de ontwikkeling met Spring. Je kunt zelf kiezen welke componenten je voor je toepassing wilt gebruiken en welke niet. In de standaardarchitectuur zijn de diverse modules ingedeeld in de volgende zes hoofdcategorieën:
Core Container
De core container bevat de elementaire modules spring-core, spring-context, spring-context-support en spring expression. Core en beans vormen hierbij het fundament van het framework en bevatten bijvoorbeeld de DI-functie en de POJO-ondersteuning. De contextmodule krijgt zijn eigenschappen van de beansmodule en voegt bijvoorbeeld functies toe aan de applicatie voor internationalisering of het laden van bronnen. Bovendien ondersteunt het Java-Enterprise-eigenschappen zoals EJB en JMX (Java Management Extensions). Met behulp van context support kunnen de bibliotheken van derden worden geïntegreerd in Spring. De module spring-expression bevat de Spring Expression Language (SPeL), een uitbreiding van de Unified Expression Language van de JSP-2.1-specificatie (JavaServer Pages).
AOP en instrumentatie
Om de aspectgeoriënteerde programmering mogelijk te maken, bevat het Spring Framework de module spring-aop en de module spring-aspects om de eerdergenoemde taal AspectJ te integreren. Het spring-aop-component maakt het mogelijk om Javaklassen te instrumentaliseren – dus om bytecode in runtime te veranderen – en voegt bovendien ClassLoader-implementeringen toe voor verschillende applicatieservers.
Messaging
Om als basis voor de op berichten gebaseerde toepassing te kunnen dienen, beschikt Spring over een aantal sleutelfuncties van het Spring-integratieproject – bijvoorbeeld ‘Message’, ‘MessageChannel’ of ‘MessageHandler’. De bijbehorende module heet spring-messaging.
Datatoegang/-integratie
De modules in deze categorie dienen ertoe om Java-toepassingen de benodigde eigenschappen te geven voor interactie met andere toepassingen en de datatoegang te regelen. De module spring-jdbc stelt bijvoorbeeld een abstractielaag ter beschikking. Deze bepaalt hoe een client toegang krijgt tot de databank en het omslachtige JBDC-coderen vrijmaakt. De module spring-orm verzorgt daarentegen integratielagen voor populaire ORM-interfaces waarmee je relationele databanken kunt gebruiken. Andere componenten zijn spring-tx (ondersteunt programmatisch transactiemanagement voor alle klassen en POJO’s), spring-oxm (abstractielaag voor object-/XML-mapping) en spring-jms, een module met eigenschappen voor het produceren en verwerken van berichten.
Web
In deze categorie bevinden zich voor webtoepassingen de specifieke modules spring-webmvc en spring-websocket. De eerste geeft de Java-toepassing de typische web-georiënteerde integratiekenmerken zoals een uploadfunctie voor meerdelige gegevens (multipart) of een http-client. De module spring-webmvc wordt ook aangeduid als ‘web servlet’ en ontvangt de Spring-implementaties voor het realiseren van de standaardmodel-view-controller-architectuur en de REST-webdiensten. De module spring-websocket maakt dataoverdracht tussen client en server mogelijk op basis van websockets.
Test
De module spring-test laat je de functionaliteit van de componenten van je Java-toepassing controleren. Zo kun je de toepassing met aanvullende frameworks, zoals JUnit of TestNG, onderwerpen aan omvangrijke unit-tests (met focus op individuele componenten) en integratietests (met focus op de samenwerking van meerdere componenten).
Spring: Java in de moderne webontwikkeling

Vanaf het begin was Java, inclusief bijbehorende technologieën, gepland voor gebruik in de webontwikkeling. Na opstartproblemen door slechte ondersteuning door eerdere browsers, de toen nog lage bandbreedte van particuliere internetaansluitingen en onvoldoende rekencapaciteiten van toenmalige pc’s, brak de programmeertaal aan het einde van de jaren negentig echt door. In het begin van het internettijdperk waren Java-applets nog populair – dat zijn Java-toepassingen die met bijbehorende runtime-omgevingen in de browser worden uitgevoerd. Ze kunnen op de gebruiker reageren zonder gegevens naar de server te moeten sturen. De applets waren echter niet geschikt voor dagelijks gebruik door de hoge vereisten. Met de opkomst van mobiele apparaten, die browser-applets niet ondersteunen, zijn de interactieve webelementen volledig verdwenen.
Hoewel Java zich aan de ene kant al snel als flop ontpopte, is de programmeertaal voor servers een vast begrip geworden. Java wordt op verschillende manieren gebruikt: van servlets, de applet-tegenhanger die op servers wordt gebruikt, tot aan complexe bedrijfsoplossingen zoals middleware, bankensoftware of grote content-managementsystemen . De diverse Javatechnologieën zijn tegenwoordig meer in trek dan ooit tevoren, voor zover het budget het toestaat. Vanwege de voordelen op het gebied van kosten en de benodigde tijd wordt namelijk bij driekwart van alle websites de scripttaal PHP gebruikt. Voor webontwikkelaars die toch met Java willen werken, biedt Spring echter zowel de benodigde structuren als een aanzienlijke vereenvoudiging van het werkproces. De voordelen van Java-webtoepassingen zijn onder andere de platformonafhankelijkheid, de duidelijke structuur en de mogelijkheid om met bedrijfssoftware en -processen te integreren.
Naar aanbieding
Voor welke projecten is het Spring-framework het meest geschikt?

Spring wordt meestal ook als lightweight-framework (letterlijk lichtgewicht) voor Java-toepassingen omschreven, omdat je bijna niets aan de broncode hoeft te veranderen om van de vele voordelen te kunnen profiteren. Onder andere gaat het hierbij om vereenvoudigingen bij het uitvoeren van transactiemanagement, interfaces en databanktoegang. Ook de mogelijkheid om gemakkelijk unit- en integratietests uit te voeren is beslist een reden voor de populariteit van het Spring-framework. Het belangrijkste punt is echter zonder twijfel de afstand van platform-specifieke en niet-gestandaardiseerde componenten. Dit maakt Spring in hoge mate draagbaar en onafhankelijk van applicatieservers. Daarom kan Spring zonder problemen als meta-netwerk worden ingezet waarin andere externe componenten of zelfs frameworks kunnen worden geïntegreerd. Een typisch voorbeeld is de ontwikkeling van een Backend op basis van Spring, dat vervolgens met een Frontend wordt verbonden dat eerder is aangemaakt met een UI-framework zoals Twitter Bootstrap.
Vooral bij het realiseren van complexe bedrijfstoepassingen laat Spring zich van zijn beste kant zien. Voor bedrijven is het framework net als Java daarom al jaren een uitstekende keuze om benodigde technologieën uit te voeren. In tegenstelling tot een puur webframework – bijvoorbeeld het project Struts van concurrent Apache – is Spring niet beperkt tot webtoepassingen, maar kunnen ook eigen desktopoplossingen worden ontwikkeld. Voor eenvoudige toepassingen – online of offline – zijn Spring en Java echter minder geschikt, ook al is het niet onmogelijk.
Een overzicht van de voordelen van Spring

Als je wilt beginnen met de ontwikkeling van je volgende grote project en nog op zoek bent naar een geschikt framework, moet je het gebruik van het Spring-framework tenminste overwegen. Vooral als Java sowieso al een rol speelt in je plannen, kun je het jezelf een stuk makkelijker maken door gebruik te maken van de flexibele moduleverzameling. Zo krijg je een sterke basisstructuur waar je bijna niets aan hoeft te veranderen. Daarmee kun je al je aandacht richten op de ontwikkeling van de eigenlijke bedrijfslogica. In het officiële Githubarchief kun je te allen tijde het framework downloaden en uitproberen. Hieronder ten slotte nogmaals de voordelen van de ontwikkelaarsomgeving van Java op een rijtje:
- Logica kan worden aangelegd als POJO’s
- Afgeronde basiscodering die je nauwelijks hoeft te veranderen
- Geen applicatieservers nodig
- Maakt uni- en integratietests mogelijk
- MVC-architectuur
- Aspectgeoriënteerde programmering mogelijk met AspectJ
- Dependency injection (externe afhankelijkheidsregulering)
- Programmatisch transactiemanagement
Actieprijzen checken