鉴于这些切入点取自以下资源:
http://maverick-amey.blogspot.ru/2007/12/using-cflow-and-cflowbelow-in-pointcuts.html
pointcut methodCalls() :
call(public void Foo.*(..)) ;
pointcut methodCallFromWebTier() :
methodCalls() && cflow(call(* com.webtier.*+.*(..)));
methodCallFromWebTier
切入点应该匹配对类的任何公共方法的所有调用Foo
与返回 void 的任何参数,前提是(&&运算符)该调用位于对以下方法的任何调用的控制流内:
- com.webtier包中的任何类(及其子类) ;
- com.webtier包中的任何抽象类(其子类) ;
- com.webtier包中任何接口的com.webtier包中的任何接口实现;
现在,如果切入点是这样的:
pointcut methodCallFromWebTier() :
methodCalls() && cflow(call(* com.webtier.*.*(..)));
因此,如果没有+子类型 TypePattern 运算符,切入点会相同吗?我的意思是,它仍然匹配所有内容(任何类、抽象类子类、接口实现),只要这一切都在com.webtier包中,所以我在这里看不到+号的用法......
我错了吗?是否有一些我可能看不到的边缘情况?
在这个例子中加号真的有必要吗?
感谢关注!