Comment puis-je les méthodes d'accès aux attributs avec Spring AOP (AspectJ-style)?
J'ai besoin de intrecept certaines méthodes et de leurs attributs à l'aide d'annotations en tant que point de coupures, mais comment puis-je accéder à ces attributs de méthode. J'ai code suivant qui ont peut exécuter du code avant la méthode est exécutée, mais je ne sais pas comment je peux accéder à ces attrbiutes.
package my.package;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class MyAspect {
@Pointcut(value="execution(public * *(..))")
public void anyPublicMethod() {
}
@Around("anyPublicMethod() && @annotation(myAnnotation )")
public Object myAspect(ProceedingJoinPoint pjp, MyAnnotation myAnnotation)
throws Throwable {
//how can I access method attributes here ?
System.out.println("hello aspect!");
return pjp.proceed();
}
}
OriginalL'auteur newbie | 2010-10-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez les obtenir à partir de la
ProceedingJoinPoint
objet:Ceux qui sont le printemps procurations autour de l'original de la requête http objets. Voir ma réponse mis à jour: vous pouvez obtenir à la fois la définition des types de paramètres (analyse statique) et la réelle de l'exécution des arguments (analyse dynamique)
Comment puis-je obtenir les valeurs de paramètres statiques, dans ce cas, HttpServletRequest objet ?
Je vous ai montré comment obtenir le type statique dans ma mise à jour de réponse. Mais je ne pense pas que c'est ce que tu veux dire. Ne vous inquiétez pas: SecurityContextHolderAwareRequestwrapper est en fait, un HttpServletRequest de mise en œuvre (voir static.springsource.org/spring-security/site/apidocs/org/...) que les délégués de la fonctionnalité à la demande initiale en dessous.
OriginalL'auteur Sean Patrick Floyd
ProceedingJoinPoint
apjp.getArgs()
, qui retourne tous les paramètres de la méthode.(mais ceux-ci sont appelés paramètres ou arguments, pas les attributs)
OriginalL'auteur Bozho