对于一个通知来说,切入点和对应的通知方法是必须的。也就是说,在这些属性中,method属性是必 须的,我们必须要给通知指定一个对应的方法;pointcut属性和pointcut-ref必须有一个被指定,以此确 定该通知的切入点。范例如下:
代码
<aop:aspect ref="MyAspect" order="0" id="Test">
<aop:pointcut id="testPointcut"
expression="execution(* aop.test.TestBean.*(..))"/>
<aop:before pointcut-ref="testPointcut" method="beforeAdvice"/>
</aop:aspect>
2)、后置通知
声明一个后置通知使用<aop:after/>标签,它的属性等和<aop:before/>标签类似,下面 是范例:
代码
<aop:aspect ref="MyAspect" order="0" id="Test">
<aop:pointcut id="testPointcut"
expression="execution(* aop.test.TestBean.*(..))" />
<aop:after pointcut-ref="testPointcut" method="AfterAdvice"/>
</aop:aspect>
Spring中基于aop命名空间的AOP 二(声明一个切面、切入点和通知)(3)
时间:2011-09-24 残梦追月
3)、返回后通知
<aop:after-returning/>标签可以声明一个返回后通知,该标签的属性和<aop:before/> 相比它多了一个returning属性。该属性的意义类似于@AfterReturning注解的returning属性,用于将链 接点的返回值传给通知方法。用法如下:
代码
<aop:aspect ref="MyAspect" order="0" id="Test">
<aop:pointcut id="testPointcut"
expression="execution(* aop.test.TestBean.*(..))" />
<aop:after-returning pointcut-ref="testPointcut"
method="AfterReturnAdvice" returning="reVlue" />
</aop:aspect>
4)、异常通知
声明一个异常通知使用<aop:after-throwing />标签,它有一个类似于throwing属性又来指定 该通知匹配的异常类型。用法如下:
<aop:aspect ref="MyAspect" order="0" id="Test">
<aop:pointcut id="testPointcut"
expression="execution(* aop.test.TestBean.*(..))" />
<aop:after-throwing pointcut-ref="testPointcut"
method="afterThrowingAdvice" throwing="throwable" />
</aop:aspect>
5)、环绕通知
环绕通知是所有通知中功能最强大的通知,用<aop:around/>标签来声明。用法如下:
代码
<aop:aspect ref="MyAspect" order="0" id="Test">
<aop:pointcut id="testPointcut"
expression="execution(* aop.test.TestBean.*(..))" />
<aop:around pointcut-ref="testPointcut" method="aroundAdvice"/>
</aop:aspect>
(完)
http://www.blogjava.net/cmzy/archive/2008/08/25/224120.html |