IoC和AOP使用扩展

来源:互联网 发布:淘宝自动核对地址插件 编辑:程序博客网 时间:2024/06/16 03:04
异常抛出
    在目标方法抛出异常时织入
    特点: 在目标方法抛出异常事织入增强处理
           可拔插的异常处理方案
    <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注解驱动的切面
原创粉丝点击