在观看Spring in action 时, 发现给到的pointCut的样例代码为
@Pointcut("execution(** springTest.pointCut.**.*(..))")
public void performance(){}
但是在实际调用时,我发现返回值为Map 时, 无法触发切面。
我重新查看代码,发现Spring文档中,上面介绍为“*”而非“**”,为此我改动了上述代码
@Pointcut("execution(* springTest.pointCut.**.*(..))")
public void performance(){}
之后,map正常触发切面。 但是, 还是不太清楚原理,如果有大神看到, 麻烦告知一下。
总的来说,就是当execution的参数为(* ....)时,能触发所有返回类型的方法。 而参数为(** ....)时 , 有部分不能触发, 至少map不行。