异常抛出
在目标方法抛出异常时织入
特点: 在目标方法抛出异常事织入增强处理
可拔插的异常处理方案
<aop:after-throwing>元素:定义异常抛出增强
实例:(引用保护增强方法的Bean)
<aop:aspect ref="theLogger">
(将afterThrowing()方法定义为异常抛出增强)
<aop:after-throwing method="afterThrowing"
(引用pointcut切入点)
pointcut-ref="poingtcut"
为e参数注入异常实例
throwing="e"/>
</aop:aspect>
最终增强的特点
无论是否抛出异常,都会在目标方法最后织入增强处理,,即:
该增强类都会得到执行
类似于异常处理机制中finally快的作用,一般用于释放资源
可以为各功能块提供统一的,可拔插的处理方案
<aop:after>元素:定义最终增强
环绕增强
目标方法前后都可织入增强处理
功能最强大的增强处理
可获取或修改目标方法的参数,返回值,可对它进行异常处理,甚至可以决定目标方法是否执行
<aop:around>元素:定义环绕增强
String s=对象.addNewUser();
常用增强处理类型
Before 前置增强处理,在目标方法前织入增强处理
AfterReturning 后置增强处理,在目标方法正常执行(不出现异常)后织入处理
AfterThrowing 异常增强处理,在目标方法抛出异常后织入增强处理
After 最终增强处理,无论方法是否抛出异常,都会在目标方法最后织入增强处理
Around 环绕增强处理,在目标方法的前后都可以织入增强处理
Spring AOP配置元素
<aop:config> AOP配置的顶层元素,大多数的<aop:*>元素必须包含在<aop:config>元素内
<aop:pointcut> 定义切点
<aop:aspect> 定义切面
<aop:after> 定义最终增强(不管被通知的方法是否执行成功)
<aop:after-returning>定义after-returning增强
<aop:after-throwing>定义after-throwing增强
<aop:around> 定义环绕增强
<aop:before> 定义前置增强
<aop:aspectj-autoproxy> 启动@AspectJ注解驱动的切面
在目标方法抛出异常时织入
特点: 在目标方法抛出异常事织入增强处理
可拔插的异常处理方案
<aop:after-throwing>元素:定义异常抛出增强
实例:(引用保护增强方法的Bean)
<aop:aspect ref="theLogger">
(将afterThrowing()方法定义为异常抛出增强)
<aop:after-throwing method="afterThrowing"
(引用pointcut切入点)
pointcut-ref="poingtcut"
为e参数注入异常实例
throwing="e"/>
</aop:aspect>
最终增强的特点
无论是否抛出异常,都会在目标方法最后织入增强处理,,即:
该增强类都会得到执行
类似于异常处理机制中finally快的作用,一般用于释放资源
可以为各功能块提供统一的,可拔插的处理方案
<aop:after>元素:定义最终增强
环绕增强
目标方法前后都可织入增强处理
功能最强大的增强处理
可获取或修改目标方法的参数,返回值,可对它进行异常处理,甚至可以决定目标方法是否执行
<aop:around>元素:定义环绕增强
String s=对象.addNewUser();
常用增强处理类型
Before 前置增强处理,在目标方法前织入增强处理
AfterReturning 后置增强处理,在目标方法正常执行(不出现异常)后织入处理
AfterThrowing 异常增强处理,在目标方法抛出异常后织入增强处理
After 最终增强处理,无论方法是否抛出异常,都会在目标方法最后织入增强处理
Around 环绕增强处理,在目标方法的前后都可以织入增强处理
Spring AOP配置元素
<aop:config> AOP配置的顶层元素,大多数的<aop:*>元素必须包含在<aop:config>元素内
<aop:pointcut> 定义切点
<aop:aspect> 定义切面
<aop:after> 定义最终增强(不管被通知的方法是否执行成功)
<aop:after-returning>定义after-returning增强
<aop:after-throwing>定义after-throwing增强
<aop:around> 定义环绕增强
<aop:before> 定义前置增强
<aop:aspectj-autoproxy> 启动@AspectJ注解驱动的切面