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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringAop @Pointcut(“@annotation“)\@Aspect练习

發布時間:2025/3/12 javascript 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringAop @Pointcut(“@annotation“)\@Aspect练习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

切面記錄日志

切面類

@Slf4j @Aspect @Component public class AspectForFeign {@Pointcut("execution(public * com.keke.remote..*Feign.*(..))")public void pointcut() {}@Around("pointcut()")public Object around(ProceedingJoinPoint joinPoint) throws Throwable {long start = System.currentTimeMillis();log.info("@Around:開始執行目標方法:{}ms", start);Object result = null;try {result = joinPoint.proceed();} catch (Exception e) {System.out.println(e.getMessage());}long end = System.currentTimeMillis();log.info("@Around:結束執行目標方法:{}ms", end);//獲取方法簽名 MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();String methodName = methodSignature.getName();log.info("方法名:{} 耗時:{}ms", methodName, end - start);//如果不返回result,則目標對象實際返回值會被置為nullreturn result;}
  • 注意:返回結果如果不返回result,則目標對象實際返回值會被置為null

@Component

  • 需要將切面類配置為bean

@Aspect

  • 標記為切面類

@Pointcut

  • 需要表達式命名,而不需要在方法體內編寫實際代碼。
execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern)throws-pattern?)

@Around

  • 環繞增強,@Pointcut和@Around聯合使用等同于:
@Around("execution(public * com.keke.remote..*Feign.*(..))")

切點攔截記錄訪問日志

攔截器數據源

@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD)//注解在方法上 public @interface ApiAccess{ }

攔截器業務實現代碼

@Aspect @Component @Slf4j public class ApiAccessAspect {@Pointcut("@annotation(com.keke.annotation.ApiAccess)")public void pointcut() {}@Around("pointcut()")public Object apiAccessAspect(ProceedingJoinPoint joinPoint) throws Throwable {HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();log.info("url:{}被訪問了.....",request.getRequestURL().toString());return joinPoint.proceed(joinPoint.getArgs());} }

@Pointcut的表達式-@annotation

限制連接點的匹配,其中連接點的主題(在 Spring AOP 中執行的方法)具有給定的 annotation。

官方案例:

任何連接點(僅在 Spring AOP 中執行方法),其中執行方法具有@Transactional annotation:

@annotation(org.springframework.transaction.annotation.Transactional)

官方的案例已經說的很清楚了,就是@annotation是匹配擁有指定注解的方法的。這里要注意,@annotation只匹配實現類中的有注解的方法,不會匹配接口中的注解方法。

看案例:

我們準備接口:

/*** @description*/ public interface IBookService {//@DkAnnotation// 這里的注解是不會被匹配的public void saveBook(String title); }

實現類:

/*** @description*/ @Component public class BookService implements IBookService{@Override@DkAnnotation //這里的注解會被匹配public void saveBook(String title){System.out.println("保存圖書:"+title);}public void saveBook(String title,int count){System.out.println("保存"+title+","+count+"次");} }

修改Aspect類:

/*** @description*/ @Component //將當前bean交給spring管理 @Aspect //定義為一個AspectBean public class DkAspect {//使用@annotation配置匹配所有還有指定注解的方法@Pointcut("@annotation(com.st.dk.demo7.annotations.DkAnnotation)")private void pointCut1(){}//定義一個前置通知@Before("pointCut1()")private static void befor(){System.out.println("---前置通知---");} }

測試:

@Testpublic void testAopPoint_annotation(){ApplicationContext ac =new AnnotationConfigApplicationContext(Appconfig.class);IBookService bean = ac.getBean(IBookService.class);bean.saveBook("程序員的修養");}

結果:

總結

以上是生活随笔為你收集整理的SpringAop @Pointcut(“@annotation“)\@Aspect练习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 狠狠躁日日躁夜夜躁 | 青青免费视频 | 三级精品在线观看 | 午夜黄色在线观看 | 成人免费视频大全 | 久久精品波多野结衣 | 在线观看小视频 | 国产三级漂亮女教师 | 亚洲狠狠丁香婷婷综合久久久 | www国产亚洲精品久久麻豆 | 曰曰操| 蓝牛av| 欧美精品999 | 蜜桃臀av一区二区三区 | 黄色性网站 | 亚洲精品国产精品乱码不卡 | h网站在线 | 91国产丝袜播放在线 | 色姐 | 神马国产 | 潮喷失禁大喷水aⅴ无码 | 日本激情视频 | 免费看的黄网站 | 狠狠久久婷婷 | 日本一级一片免费视频 | 东方影库av | 久久久久久久久久久福利 | 国产精品观看 | 福利久久久 | 国产高清在线观看视频 | 大尺度av| 国产aⅴ精品一区二区果冻 台湾性生生活1 | 欧美熟妇一区二区 | 中国字幕av| 成人黄色网址在线观看 | 午夜福利电影一区二区 | 国产传媒国产传媒 | 黄色片在线观看免费 | 95久久 | 国产乱国产乱老熟300部视频 | 天堂av日韩| 欧美成人精品一区二区男人小说 | 国产亚洲一区二区三区四区 | 欧美日韩亚洲精品内裤 | 男女洗澡互摸私密部位视频 | 欧美系列一区二区 | 制服丝袜一区 | 播放毛片 | av久久久| 国产又黄又湿 | 免费a级大片 | 久久国产热 | 久久av高潮av | 九九精品视频在线 | 国产成人在线一区二区 | 欧美成人r级一区二区三区 中文无码一区二区三区在线观看 | 国产成人精品亚洲日本在线观看 | 日韩一级片免费在线观看 | 99蜜桃臀久久久欧美精品网站 | 欧美日韩你懂的 | 秋霞在线一区 | 久久久久久久久久久久久av | 亚洲在线看片 | 我们的2018在线观看免费高清 | www.久久av| 成人香蕉视频在线观看 | 手机在线亚洲 | 亚洲热在线视频 | 污视频网站在线播放 | 国产一区二区片 | 成人中文网 | 黄色一级片欧美 | 国产日韩欧美精品在线观看 | 日韩视频免费在线观看 | 蜜臀在线视频 | 日韩激情综合网 | 国产日韩精品一区二区三区在线 | 村上里沙番号 | 欧美午夜精品一区 | 国产成人精品av在线观 | 国产一线天粉嫩馒头极品av | 国产三级aaa | 欧美日韩精品区别 | 超碰狠狠| 性毛片 | 国产福利免费观看 | 国产一区二区视频播放 | 99国产精品久久久久久久 | 成了校长的性脔h文 | 色很久| 美女av在线播放 | 国产精品一区二区三区免费在线观看 | 他揉捏她两乳不停呻吟动态图 | 玖玖视频 | 亚洲国产一区二区三区在线观看 | 精品盗摄一区二区三区 | 妺妺窝人体色www聚色窝仙踪 | 亚洲成av人在线观看 | 亚洲欧美自拍另类 |