众所周知,spring 2.0允许使用scheam和annotation来配置aop,具体请参考这个帖子
http://blog.csdn.net/daryl715/archive/2007/10/11/1820530.aspx
http://blog.csdn.net/daryl715/archive/2007/10/11/1820577.aspx
在定义诸如 execution(* AOP2Annotation.ISpeaker.* (..))
Spring的executio表达式最长使用Pointcut表示式,语法组成如下共分5个部分
1.表示存取修饰匹配
2.表示传回值类型匹配
3.类类型匹配
4.方法名匹配
5.异常类型匹配
下面举几个execution表达式的例子
1. execution(public * * (..)) 符合任意公开方法
2.execution(* hello * (,,)) 符合任何以hell开头的方法
3.execution(* onlyfun.IHello.* (,,)) 复合IHello接口的任意方法
4.execution(* onlyfun.service.*.* (,,)) 符合service包下任意类的任意方法
5.execution(* onlyfun.service..*.* (,,)) 符合service包及任何包下任意类的任意方法
如果只是需要复合某些类型,还可以使用with表达式
with(onlyfun.service.*) service包下任意类的任意方法
with(onlyfun.service..*) service包及任何包下任意类的任意方法
Spring2.0 还有this,target,args等表达式,可以参考spring2.0的references