Tags: Frameworks | Java | Spring

Het Spring Framework

door Rene de Jong

Het Spring framework is een zeer populair framework dat het bouwen van enterprise java applicaties simpeler maakt. Het Spring framework is ontstaan door het feit dat J2EE ontwikkeling nogal complex is. Met Spring is het mogelijk om op een object georiënteerde manier enterprise java applicaties te schrijven die flexibel, beter leesbaar en beter te testen zijn.

Wat is Spring?

De hoofdgedachte van Spring is dat alle business logica code in gewone java objecten (in het Engels Plain Old Java Object of POJO) wordt geschreven. Deze POJO's bevatten alleen maar business logica en geen 'plumbing' code zoals code voor security, logging en database aanroepen.

Het voordeel van deze aanpak is dat

  • De business logica makkelijk te begrijpen is, en dus makkelijker te schrijven en te onderhouden is.
  • De business logica makkelijk te testen is, en test gedreven software ontwikkeling ondersteunt.
  • De business logica niet afhankelijk is van technologische veranderingen.

De 'plumbing' code wordt dan in aparte objecten geïmplementeerd en deze ?plumbing? code wordt m.b.v. een XML configuratie file toegevoegd aan de business logica code.

Waar bestaat Spring uit?

Het hart van Spring bestaat uit 3 verschillende technieken:
  • Dependency Injection (DI), een techniek om de applicatie flexibeler en beter testbaar te maken.
  • Aspect oriented programming (AOP), een techniek om de business logica te scheiden van de technische infrastructuur.
  • Enterprise service templates, een techniek die het programmeren van de verschillende enterprise service API's een stuk simpeler maakt.

Het gebruik van deze 3 technieken samen maakt het implementeren, testen en veranderen van enterprise java applicaties een stuk eenvoudiger. Dit is de reden waarom het Spring framework zo populair is. Het mooie van Spring is dat je zelf kunt kiezen welke technieken van Spring je wilt gebruiken. Veel projecten beginnen met het gebruik van alleen het JDBC template van Spring. Dit JDBC template levert al snel een besparing op van 75% minder regels code in vergelijking met het gebruik van de JDBC API. Daarna gaat men geleidelijk DI en/of AOP gebruiken.

Een ander belangrijk aspect van Spring is dat het aan de voorkant ondersteuning biedt voor integratie met allerlei web frameworks zoals Struts of JSF en aan de achterkant ondersteuning biedt voor integratie met allerlei persistentie frameworks zoals Hibernate, JDBC of JDO. Veel projecten gebruiken tegenwoordig de combinatie van Struts, Spring en Hibernate of JSF, Spring en Hibernate.

Spring en EJB 3

Spring is op dit moment erg populair in de enterprise java wereld, maar zal de nieuwe EJB 3 standaard Spring niet overbodig maken? Dit verwacht ik niet want Spring biedt veel meer dan wat EJB 3 te bieden heeft. Hoewel men bij het vaststellen van de EJB 3 standaard goed naar Spring heeft gekeken, zijn de mogelijkheden van EJB 3 veel minder krachtig dan de mogelijkheden van Spring.

De nieuwe Java Enterprise Edition (JEE) standaard is een grote vooruitgang ten opzichte van de oude J2EE standaard, maar bevat nog steeds bepaalde beperkingen. Open source frameworks als Spring, Seam en Hibernate bieden oplossingen voor deze beperkingen. Door naast de JEE standaard een open source framework als Spring te gebruiken krijgt men de ?best of both worlds?.

Lees meer over ICT Intelligence
Ga terug naar We Love IT uitgave #2 - 2007
Advertentie