Movlin  ¦   CV   ¦   Kontakt  ¦   Blog

CV

Systemarkitekt

Systemintegration

BizTalk Server

Java

Java EE 5

Open Source

Spring

Ruby on Rails

Websiteanalys

Bokrecensioner

Konferenser

Øredev, Malmö 2007
The Server Side, Barcelona 2007
SAP TechEd 2006
JAOO 2006
Sime05

Spring Framework

Spring Framework är ett s.k lättviktigt ramverk för utveckling i framförallt J2EE miljö.

Ramverket är framtaget som en reaktion på den allt för tunga arkitekturen som bygger på EJB som grundsten för J2EE system.

Spring 2.0

I oktober så släpptes version 2.0 av ramverket. Nyheterna i ramverket är:

  • Kraftigare konfigurationsstöd tacke vare Schemaformatet
  • Nya scope på beans - Request och Session att användas i Web system
  • AspectJ integration
  • Förenkling av deklarativa transaktioner
  • Stöd för Java Peristence Api (JPA)
  • Asynkront JMS stöd
  • Förbättringar i JDBC stödet
  • Spring MVC har fått ett nytt form tag library
  • Java 5 support
  • etc

Ramverket

Ramverket består av ett antal mer eller mindre frikopplade moduler

  • Core - Grundstenen där bl.a. dependency-injection mekanismen huserar
  • DAO - Ett abstraktionslager för JDBC
  • ORM - Integrationslager mot olika OR mappnings APIer (JPA, JDO, Hibernate and iBatis)
  • AOP - Stöd för Spring AOP och AspectJ
  • JEE - Stöd ett flertal olika J2EE/Java 5 EE teknologier att integrera med
  • Web - Spring eget MVC ramverk och integration med ett flertal olika varianter av ramverk

Dependency Injection

Grundstenen i Spring är dess stöd för Dependency Injection (DI). Dependency Injection, eller Inversion of Control, är ett programmeringssätt där man överlåter ansvaret till den miljö som systemet kör i att skapa komponenter och tjänster och initiera dess inbördes beroenden.

I Springs fall har BeanFactory ansvaret för att skapa och injicera beroenden utifrån en eller flera konfigurationsfiler.

Test

Tack vare den lösa kopplingen mellan konsument- och tjänstekomponenter har man skapat en förutsättning för ökad testbarhet av systemet. Testklassen, som oftast är en implementation av TestCase, låter vi skapa och injecera mockobjektet av service interfacet till ServiceUser. Därmed kan vi testa ServiceUser klassen och dessutom kan vi göra det utan att behöva köra klassen i målmiljön vilket underlättar utvecklingen av systemet.

Aspect Oriented Programming - AOP

Spring stöd för AOP är tack vare sin enkelhet tilltalande. I korthet går det ut på att till varje tjänst går det att applicera en eller flera aspekter som agerar som proxy framför den verkliga tjänsten. En aspekt kan vara en transaktionshanterare, säkerhetstjänst, loggningtjänst etc.

AspectService placeras framför ServiceImpl mha reguljära uttryck i konfigurationsfilen och är tillräckligt överskådligt.

Erfarenheter

I den mån jag har haft behov av att använda Spring så har det varit utan större problem. Jag som är van vid Dynamo Application Framework saknar dock ett antal tjänster som förhoppningsvis kommer i senare versioner. Spring AOP är dock lättanvänt och lagt på en bra nivå vilket gör det tilltalande att använda till skillnad ifrån "gamla" AspectJ.

Aktiviteten i Spring är hög och nya versioner släpps regelbundet. Bl.a. har Spring Webflow tillkommit och nya konfigurationsverktyg och konfigurationsmöjligheter.

Movlin | Adress: Humlevägen 24, 437 42 Lindome | Telefon: 0708-320809 | E-post: peter.norrhall@movlin.se | © 2005