Aspectj方面用于指定多个包

我想为aspectj @Around方面指定一个包含多个包的模式。

Example : package 1 : aaa.bbb.ccc.ddd package 2 : aaa.bbb.ccc.eee package 3 : aaa.bbb.ccc.eee.fff 

我使用的模式:

 @Around("execution(* aaa.bbb.ccc.ddd.*.*(..)) && execution(* aaa.bbb.ccc.eee..*.*(..))") ie Intercept packages aaa.bbb.ccc.ddd, aaa.bbb.ccc.eee and any sub-package of aaa.bbb.ccc.eee 

但这种模式似乎不起作用。 虽然指定单个模式没有&&条件有效。

有人可以说这种模式有什么问题吗?

谢谢,
Gayathri

&&代表逻辑AND 。 你需要的是一个逻辑OR ,在AspectJ中是||

 @Pointcut("execution(* aaa.bbb.ccc.ddd.*.*(..))") public void methodInDddPackage() {} @Pointcut("execution(* aaa.bbb.ccc.eee.*.*(..))") public void methodInEeePackage() {} @Pointcut("methodInDddPackage() || methodInEeePackage()") public void methodInDddOrEeePackage() {} 

下面等效的内联表达式:

 @Pointcut("execution(* aaa.bbb.ccc.ddd.*.*(..)) || execution(* aaa.bbb.ccc.eee.*.*(..))") public void methodInDddOrEeePackageInline() {} 

有关更多详细信息,请参见Spring AOP文档页面。