j'ai essayé l'expression de pointcut pour un paquet spécifique comme com.abc.def.controller
, com.abc.def.service.serviceImpl
, etc dans @Around
conseils comme:Expression Pointcut pour des méthodes spécifiques dans différents paquets
@Around("execution(* com.abc.def.controller..*.*(..))")
@Around("execution(* com.abc.def.service.*Impl.*(..))")
Je dois aussi correspondre à des méthodes dans différents paquets comme com.abc.xyz.controller
, com.abc.xyz.service.serviceImpl
et essayé de nombreuses expressions pointues, mais n'a pas fonctionné.
Toute aide sera appréciée. :)
Merci pour votre réponse. J'ai une question qui, je viens d'ajouter plus de déclaration dans l'expression du contrôleur comme, @Around ("exécution (* com.abc..controller .. * (..)) && @annotation (CustomAnnotation)"). Cela ne fonctionne pas. Ai-je manqué un code ou une confioguration nécessaire pour cela? – Abhishek
Dans la syntaxe basée sur les annotations AspectJ, vous devez utiliser un nom de classe complet, tel que 'com.abc.blah.CustomAnnotation'. Dans la syntaxe native d'AspectJ, cela ne serait pas nécessaire. – kriegaex
Voici mon interface d'annotation ... import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention (RetentionPolicy.RUNTIME) @Target ({ElementType.TYPE, ElementType.METHOD}) @interface publique CustomAnnotation { \t cordes methodName(); \t Type de chaîne(); } – Abhishek