2010-11-05 10 views
1

J'utilise des annotations AspectJ au lieu d'écrire des fichiers d'aspect réels. Je veux exposer une valeur d'annotation à mon avis.AspectJ expose la valeur de l'annotation à l'aide des annotations AspectJ

J'ai actuellement cela, mais ce qu'il ne met pas les valeurs à l'intérieur MyAnnotation

@Before("execution(@MyAnnotation * * (..))") 
public void intercept(JoinPoint jp) { 
... 
} 

Ce que je pensais était quelque chose comme ceci:

@Before("execution(@MyAnnotation * * (..)) && @this(MyAnnotation)") 
public void intercept(JoinPoint jp, MyAnnotation myAnnotation) { 
... 
} 

Cela a manifestement une erreur de syntaxe, mais était Je me demandais si j'étais proche. Je n'arrive pas à trouver un exemple de syntaxe lorsque j'utilise des annotations AspectJ pour cela.

Répondre

2

Vous utilisez un type, lorsque vous utilisez un identifiant. Le code correct est:

@Before("execution(@MyAnnotation * * (..)) && @this(myAnnotation)") 
public void intercept(JoinPoint jp, MyAnnotation myAnnotation) { 
... 
} 
+0

+1: Beau travail Ramnivas! – Espen