Spring应用手册-AOP(XML)-(8)-AOP-XML-最终通知 - Go语言中文社区

Spring应用手册-AOP(XML)-(8)-AOP-XML-最终通知


戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注

AOP-XML-最终通知

spring应用手册(第四部分)


所谓最终通知就是在方法完全执行结束之后在执行的通知,最终通知和后置通知的区别在于,无论业务方法是否出现异常中断,最终通知都会执行,和finally代码块的效果一致。

案例:

我们继续让业务方法抛出异常中断程序:

/**
 * @author 戴着假发的程序员
 * @company http://www.boxuewa.com
 * @description
 */
public class MessageBean {
    //输出信息的业务方法
    public String printMessage(String msg){
        System.out.println("MessageBean-printMessage:"+msg);
        String str = null;
        str.trim();//抛出空指针异常
        return msg;
    }
}

在Aspect类中添加一个最终通知处理方法:

/**
 * @author 戴着假发的程序员
 * @company http://www.boxuewa.com
 * @description
 */
public class DkAspect {

    /**
     * 最终通知
     */
    public void after(JoinPoint joinPoint){
        System.out.println("最终通知。。。。。");
    }

在aop:config中添加最终通知的配置:

    <!-- AOP配置 -->
    <aop:config>
        <!-- 申明AspectBean,引用我们注册的dkAspect -->
        <aop:aspect id="aspect" ref="dkAspcet">
            <!-- 声明一个切入点,命名为pointcut1 -->
            <!-- xml中不能使用 && ,逻辑与要使用and,-->
            <!-- 如果我们的before增强方法中传入了参数msg,我就要使用args(msg)限定切入点 -->
            <aop:pointcut id="pointcut1"
                          expression="execution(* com.st.beans..*.*(..))"/>
            <!-- 最终通知 -->
            <aop:after method="after" pointcut-ref="pointcut1"/>

        </aop:aspect>
    </aop:config>

执行业务方法测试:
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/q2780004063/article/details/109331594
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2022-12-29 19:16:18
  • 阅读 ( 41 )
  • 分类:Go应用

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢