Spring事物拦截器,按照通知方式分为[前置通知(Before advice),返回后通知(After returning advice) ,抛出后通知(After throwing advice),后通知(After (finally) advice),环绕通知(Around Advice)] 配置方式分@AspectJ,XML,网上比较多的是Spring1.1或xml+@AspectJ方式配置,例子使用XML方式配置
1.定义切面类接口,切面类实现这个接口。声明(如果被代理的目标对象实现了至少一个接口,则会使用JDK动态代理。所有该目标类型实现的接口都将被代理。若该目标对象没有实现任何接口,则创建一个CGLIB代理)
2.定义前置通知拦截处理类
3.定义拦截器配置文件
4.测试一下前置通知
5.定义返回后通知拦截处理类
6.定义拦截器配置文件
7.测试一下返回后通知
8.定义环绕通知拦截处理类(环绕通知在一个方法执行之前和之后执行。 它使得通知有机会既在一个方法执行之前又在执行之后运行。并且,它可以决定这个方法在什么时候执行,如何执行,甚至是否执行。 环绕通知经常在在某线程安全的环境下,你需要在一个方法执行之前和之后共享某种状态的时候使用。 请尽量使用最简单的满足你需求的通知。(比如如果前置通知(before advice)也可以适用的情况下不要使用环绕通知)) 通知方法的第一个参数的类型必须是 ProceedingJoinPoint 类型。在通知的主体中,调用 ProceedingJoinPoint的proceed() 方法来执行真正的方法。 proceed 方法也可能会被调用并且传入一个 Object[] 对象 - 该数组将作为方法执行时候的参数。
ProceedingJoinPoint
proceed()
proceed
Object[]
9.定义拦截器配置文件
10.测试一下环绕通知
posted on 2009-02-10 23:07 Pitey 阅读(1677) 评论(0) 编辑 收藏 所属分类: Spring
Powered by: BlogJava Copyright © Pitey