Spring框架----四种常用通知类型

 2023-09-28 阅读 26 评论 0

摘要:用于记录日志的工具类,它里面提供了公共的代码 /*用于记录日志的工具类,它里面提供了公共的代码*/ public class Logger {/*前置通知*/public void beforePrintLog(){System.out.println("(前置通知)Logger类中的beforePrintLog方法开始记录日志了");}/

用于记录日志的工具类,它里面提供了公共的代码

/*用于记录日志的工具类,它里面提供了公共的代码*/
public class Logger {/*前置通知*/public void beforePrintLog(){System.out.println("(前置通知)Logger类中的beforePrintLog方法开始记录日志了");}/*后置通知*/public void afterReturningPrintLog(){System.out.println("(后置通知)Logger类中的afterReturningPrintLog方法开始记录日志了");}/*异常通知*/public void afterThrowingPrintLog(){System.out.println("(异常通知)Logger类中的afterThrowingPrintLog方法开始记录日志了");}/*最终通知*/public void afterPrintLog(){System.out.println("(最终通知)Logger类中的afterPrintLog方法开始记录日志了");}
}

配置spring的IOC

<!--配置spring的IOC-->
<bean id="accountService" class="com.yujie.service.impl.AccountServiceImpl"></bean><!--配置logger类-->
<bean id="logger" class="com.yujie.utils.Logger"></bean>
<!--配置AOP-->
<aop:config><!--配置切面--><aop:aspect id="logAdvice" ref="logger"><!--配置前置通知--><aop:before method="beforePrintLog" pointcut="execution(* com.yujie.service.impl.*.*(..))"></aop:before><!--配置后置通知--><aop:after-returning method="afterReturningPrintLog" pointcut="execution(* com.yujie.service.impl.*.*(..))"></aop:after-returning><!--配置异常通知--><aop:after-throwing method="afterThrowingPrintLog" pointcut="execution(* com.yujie.service.impl.*.*(..))"></aop:after-throwing><!--配置最终通知--><aop:after method="afterPrintLog" pointcut="execution(* com.yujie.service.impl.*.*(..))"></aop:after></aop:aspect>
</aop:config>

在这里插入图片描述
没有异常通知,是因为我们的程序在执行的过程中没有产生异常,所以不会有异常通知。
如果修改saveAccount的方法

public void saveAccount() {System.out.println("执行了保存");int i=1/0;
}

再次进行

在这里插入图片描述
后置通知没有了。异常通知有了
前置通知是在切入点方法执行之前执行
后置通知是在切入点方法正常执行之后执行
异常通知在切入点方法执行产生异常之后执行
最终通知无论切入点方法是否正常执行它都会在其后面执行
后置通知和异常通知永远只能执行一个。

比如事务要么提交,要么回滚,不可能既提交和回滚

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/101704.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息