J and I and Me
2009-08-10
  Spring 3.0: Meta Annoationen
In Spring 3.0 hat mit Meta Annotationen ein neues Feature Einzug gehalten, das den Umgang mit Annotationen vereinfacht. Hier ein Beispiel ohne Meta Annotationen:


@Service
@Transactional(timeout=42, noRollbackFor={ApplicationException.class})
public class EinService {
...
}


Wie man sieht, ist der Service mit zwei Annotationen versehen. Vermutlich sollen alle anderen Services genauso annotiert werden. Der Code drückt aber nicht die eigentliche Intention aus: Jeder Service auch die entsprechenden Transaktions-Regeln haben. Beide Annotationen werden immer nur zusammen vorkommen.
Das könnte man durch AOP lösen, indem man jeden Service per AOP mit einer passenden Transaktions-Regel versieht. Eine ander Möglichkeit sind die Meta Annotationen. Dazu definiert man sich seine eigene Annotation:


@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Service
@Transactional(timeout=42, noRollbackFor={ApplicationException.class})
public @interface MeinService {
}


Diese Annotation wirkt nun genau wie die Kombination aus @Service und @Transactional. Der obige Code wird also zu:


@MeinService
public class EinService {
...
}


Analog könnte man @MeinRepository usw. definieren. Dabei ist zum Beispiel auch die Nutzung von @Scope für die Definition eines Scopes möglich.

Wie man sieht, bieten Meta-Annotationen interessante neue Möglichkeiten für die Konfiguration mit Spring.

Labels: ,

 
Comments: Kommentar veröffentlichen

<< Home
J für Java, Java EE | I für Internet, iMac, iBook und iPod | Me für mich

Mein Foto
Name: Eberhard Wolff
Standort: Berlin, Germany

Ich arbeite als Regional Director für SpringSource, die Firma hinter dem Spring Framework, in Deutschland. Hauptsächlich beschäftige ich mich mit Java EE, Spring und agiler Software Entwicklung. Ich bin einer von weltweit 20 Gründungsmitgliedern Java Champions. Außerdem benutze ich - wann immer es geht - mein MacBook pro...

ARCHIVES
Juni 2005 / Juli 2005 / August 2005 / September 2005 / Oktober 2005 / November 2005 / Dezember 2005 / Januar 2006 / Februar 2006 / März 2006 / April 2006 / Mai 2006 / Juni 2006 / Juli 2006 / August 2006 / September 2006 / Oktober 2006 / November 2006 / Dezember 2006 / Januar 2007 / Februar 2007 / März 2007 / April 2007 / Mai 2007 / Juni 2007 / Juli 2007 / August 2007 / September 2007 / Oktober 2007 / November 2007 / Dezember 2007 / Januar 2008 / April 2008 / Mai 2008 / Juni 2008 / August 2008 / September 2008 / November 2008 / Januar 2009 / Februar 2009 / März 2009 / April 2009 / Mai 2009 / Juni 2009 / Juli 2009 / August 2009 / September 2009 / Oktober 2009 / November 2009 /

Links

Spring Training in Deutschland

SpringSource - die Firma hinter Spring

Spring User Group Germany

Software Engineering Radio Audiocast

Das Spring Buch

Twitter

Feeds
Feedburner
Site Feed