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: ,

  10:32
Bookmark and Share
Comments: Kommentar veröffentlichen

<< Home
J for Java | I for Internet, iMac, iPod and iPad | Me for me

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 / Dezember 2009 / Januar 2010 / Februar 2010 / März 2010 / April 2010 / Mai 2010 / Juli 2010 / August 2010 / Oktober 2010 / Januar 2011 / Februar 2011 / März 2011 / April 2011 / Mai 2011 / Juni 2011 / August 2011 / September 2011 / November 2011 / Februar 2012 / April 2012 / Mai 2012 / April 2013 / Mai 2013 / Juni 2013 / Januar 2015 / Juli 2015 / Februar 2016 /

Links

Twitter
Google +
Slideshare
Prezi
XING
LinkedIn
Das Spring Buch


Feeds

Feedburner


Impressum
Betreiber und Kontakt:
Eberhard Wolff
Leobschützer Strasse 22
13125 Berlin
E-Mail-Adresse: eberhard.wolff@gmail.com

Verantwortlich für journalistisch-redaktionelle Inhalte:
Eberhard Wolff