I wanted to specify a pattern for aspectj @Around aspect that includes multiple packages.
Example : package 1 : aaa.bbb.ccc.ddd
package 2 : aaa.bbb.ccc.eee
package 3 : aaa.bbb.ccc.eee.fff
Pattern which i used :
@Around("execution(* aaa.bbb.ccc.ddd.*.*(..)) && execution(* aaa.bbb.ccc.eee..*.*(..))")
i.e Intercept packages aaa.bbb.ccc.ddd, aaa.bbb.ccc.eee and any sub-package of aaa.bbb.ccc.eee
But this pattern doesnt seem to work. Though specifying a single pattern without && condition works.
Can someone suggest whats wrong with this pattern?
Thanks,
Gayathri
&&
stands for logicalAND
. What You need here is a logicalOR
, that in AspectJ is||
.Below equivalent inline expression:
See this Spring AOP documentation page for more details.