您的位置:首页 > 编程语言 > ASP

Aspect 切点表达式(xml形式,非注解形式的)

2014-04-01 19:53 435 查看
<aop:pointcut expression="切点表达式" id="aspect"/>

Aspect 切点表达式:

execution: 匹配指定的方法

execution(void perform()) 匹配项目下所有该方法

execution(void first.Singer.perform()) 匹配具体到某个类的该方法

execution(* first.Artist.perform()) 不考虑返回值类型

execution(* first.Artist.perform(..)) 不考虑返回值类型和参数列表

execution(* first.Aritst.perform(*,*)) 参数必须是两个

execution(* first.Artist.perform(..,java.lang.String))

execution(* find*(..)) 所有方法名符合findXxx 的方法

execution(* com.tarena.service.StoreService.*(..)) 该类中所有方法

execution(* com.tarena.service.*.*(..)) 该包中所有类的所有方法

execution(* com.tarena..*.*(..)) 该包及其子包中所有类的所有方法

within: 匹配类内的所有方法(必须是实现类,不能是接口)

在service包中的任意连接点(在Spring AOP中只是方法执行):
within(com.xyz.service.*)


在service包或其子包中的任意连接点(在Spring AOP中只是方法执行):
within(com.xyz.service..*)


实现了
AccountService
接口的代理对象的任意连接点 (在Spring AOP中只是方法执行):
this(com.xyz.service.AccountService)


'this'在绑定表单中更加常用:- 请参见后面的通知一节中了解如何使得代理对象在通知体内可用。

实现
AccountService
接口的目标对象的任意连接点 (在Spring AOP中只是方法执行):
target(com.xyz.service.AccountService)


'target'在绑定表单中更加常用:- 请参见后面的通知一节中了解如何使得目标对象在通知体内可用。

任何一个只接受一个参数,并且运行时所传入的参数是
Serializable
接口的连接点(在Spring AOP中只是方法执行)
args(java.io.Serializable)

'args'在绑定表单中更加常用:。
请注意在例子中给出的切入点不同于
execution(* *(java.io.Serializable))
: args版本只有在动态运行时候传入参数是Serializable时才匹配,而execution版本在方法签名中声明只有一个
Serializable
类型的参数时候匹配。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: