日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

配置切入点表达式|| 前置通知、后置通知、异常通知、最终通知、环绕通知

發(fā)布時間:2025/4/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 配置切入点表达式|| 前置通知、后置通知、异常通知、最终通知、环绕通知 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.





?環(huán)繞通知




pom.xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.dym</groupId><artifactId>day03_eesy_04adviceType</artifactId><version>1.0-SNAPSHOT</version><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.6</source><target>1.6</target></configuration></plugin></plugins></build><packaging>jar</packaging><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.2.RELEASE</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.7</version></dependency></dependencies></project>

IAccountService.java

package com.itheima.service;/*** 賬戶的業(yè)務層接口*/ public interface IAccountService {/*** 模擬保存賬戶*/void saveAccount();/*** 模擬更新賬戶* @param i*/void updateAccount(int i);/*** 刪除賬戶* @return*/int deleteAccount(); }

AccountServiceImpl.java

package com.itheima.service.impl;import com.itheima.service.IAccountService;/*** 賬戶的業(yè)務層實現(xiàn)類*/ public class AccountServiceImpl implements IAccountService{@Overridepublic void saveAccount() {System.out.println("執(zhí)行了保存"); // int i=1/0;}@Overridepublic void updateAccount(int i) {System.out.println("執(zhí)行了更新"+i);}@Overridepublic int deleteAccount() {System.out.println("執(zhí)行了刪除");return 0;} }

Logger.java

package com.itheima.utils;import org.aspectj.lang.ProceedingJoinPoint;/*** 用于記錄日志的工具類,它里面提供了公共的代碼*/ 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方法開始記錄日志了。。。");}public Object aroundPringLog(ProceedingJoinPoint pjp){Object rtValue = null;try{Object[] args = pjp.getArgs();//得到方法執(zhí)行所需的參數(shù)System.out.println("Logger類中的aroundPringLog方法開始記錄日志了。。。前置");rtValue = pjp.proceed(args);//明確調(diào)用業(yè)務層方法(切入點方法)System.out.println("Logger類中的aroundPringLog方法開始記錄日志了。。。后置");return rtValue;}catch (Throwable t){System.out.println("Logger類中的aroundPringLog方法開始記錄日志了。。。異常");throw new RuntimeException(t);}finally {System.out.println("Logger類中的aroundPringLog方法開始記錄日志了。。。最終");}} }

bean.xml

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"><!-- 配置srping的Ioc,把service對象配置進來--><bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"></bean><!-- 配置Logger類 --><bean id="logger" class="com.itheima.utils.Logger"></bean><!--配置AOP--><aop:config><aop:pointcut id="pt1" expression="execution(* com.itheima.service.impl.*.*(..))"></aop:pointcut><!--配置切面 --><aop:aspect id="logAdvice" ref="logger"><!--配置前置通知:在切入點方法執(zhí)行之前執(zhí)行--><!--<aop:before method="beforePrintLog" pointcut-ref="pt1" ></aop:before>--><!--&lt;!&ndash; 配置后置通知:在切入點方法正常執(zhí)行之后值。它和異常通知永遠只能執(zhí)行一個--><!--<aop:after-returning method="afterReturningPrintLog" pointcut-ref="pt1"></aop:after-returning>--><!--配置異常通知:在切入點方法執(zhí)行產(chǎn)生異常之后執(zhí)行。它和后置通知永遠只能執(zhí)行一個--><!--<aop:after-throwing method="afterThrowingPrintLog" pointcut-ref="pt1"></aop:after-throwing>--><!--配置最終通知:無論切入點方法是否正常執(zhí)行它都會在其后面執(zhí)行--><!--<aop:after method="afterPrintLog" pointcut-ref="pt1"></aop:after>--><!-- 配置環(huán)繞通知 詳細的注釋請看Logger類中--><aop:around method="aroundPringLog" pointcut-ref="pt1"></aop:around></aop:aspect></aop:config></beans>

總結(jié)

以上是生活随笔為你收集整理的配置切入点表达式|| 前置通知、后置通知、异常通知、最终通知、环绕通知的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人高潮片免费视频 | 色综综 | 一区二区三区啪啪啪 | 成人交性视频免费看 | 黄色小说在线视频 | 人人人超碰 | 亚洲精品在线视频观看 | 总裁憋尿呻吟双腿大开憋尿 | 亚洲精品国产电影 | 成人黄色一级视频 | 黄色大片aaa | 免费久久久| www.99爱 | 日韩在线网 | 激情文学亚洲色图 | 色悠久久综合 | 天堂成人 | 国产手机在线视频 | 二十四小时在线更新观看 | 好看的毛片 | 亚洲天堂8 | 古装做爰无遮挡三级视频 | 一区二区三区四区在线视频 | 久久久久久久久久久网 | 国产精品久久久久久久9999 | 亚洲精品日韩av | 美国一级大黄一片免费中文 | 国产午夜精品一区二区三区视频 | 日韩av一| 狼人伊人干 | 欧美又大粗又爽又黄大片视频 | 欧美阿v| 亚洲av无码乱码国产麻豆 | 亚洲AV无码成人片在线观看 | 国产乱子伦视频一区二区三区 | 很嫩很紧直喷白浆h | 国产又黄又粗又猛又爽 | 欧洲精品视频在线观看 | 一级特黄bbbbb免费观看 | 中文字幕一区二区人妻电影丶 | 饥渴少妇勾引水电工av | av网在线播放 | 噜噜噜色| 国产传媒国产传媒 | 亚洲国产日韩av | 探花视频在线观看 | 久久综合在线 | 亚洲人妖在线 | 欧美人与性动交α欧美片 | 日本在线免费播放 | 草莓视频一区二区三区 | 亚洲AV无码久久精品色三人行 | 黄色录像a级片 | 搡老岳熟女国产熟妇 | 亚洲大片免费 | 欧美乱大交xxxxx潮喷l头像 | 性欧美精品中出 | 成人性色生活片 | 国产免费福利视频 | 青青草国产一区二区三区 | 黄色国产在线观看 | 夜夜欢天天干 | 国产a国产片国产 | 亚洲第九十七页 | 污网站在线观看免费 | 亚洲av无码乱码国产麻豆 | 欧美乱妇15p| 91免费看黄| 成人免费看片网站 | 制服丝袜中文字幕在线 | 欧美午夜精品久久久久久蜜 | 热久久久久 | 久久精品美女视频 | 少女与动物高清版在线观看 | av片网站 | 国产又粗又猛又黄又爽 | 色悠悠网址 | 日本一区不卡 | 美日韩一区二区三区 | 玩偶游戏在线观看免费 | 男女黄色片 | 免费在线黄色网 | 欧美丰满美乳xxx高潮www | 免费观看色| 日日干夜夜操 | www.四虎精品 | 亚洲成人免费av | 99视频在线免费观看 | 国产亚洲av片在线观看18女人 | 日韩黄色免费 | 久久久久激情 | 美国福利片| 欧美久久影院 | v99av | 国产欧美综合在线 | 欧美视频精品在线 | 久草中文网 | 精品无码久久久久国产 | 午夜视频免费看 |