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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

spring Aop实现日志

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring Aop实现日志 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作用:日志用來記錄項目的動態,以便于項目出問題時排查解決

這里用到spring的兩大核心之一---------->aop
這版講到的日志是作用在方法的,通過aop來指定某些方法以完成在執行方法前后的一些操作,說是記錄日志不如說是講解aop的用法

首先需要熟知幾個重要的注解:

?有兩種用法(目前我發現的兩種)

第一種用execution

@Pointcut("execution(public * cn.zld.springbootwebsockettest.service.ZUserInfoService.*(..))") public void customize() { }

Execution的具體參數和用法可自行百度

我上面的用法是將cn.zld.springbootwebsockettest.service.ZUserInfoService包中的所有pulic方法都定義成切點

@Before(value = "customize()") public void methodBefore(JoinPoint joinPoint) {MethodSignature signature = (MethodSignature) joinPoint.getSignature();LogMethod declaredAnnotation =signature.getMethod().getDeclaredAnnotation(LogMethod.class);log.info("執行方法------>{}", declaredAnnotation.value());String[] parameterNames = signature.getParameterNames();log.info("參數--------->{}", Arrays.toString(parameterNames)); }


?

?第二種:直接用自定義注解
先創建一個自定義注解

@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface LogMethod {/*** 方法名稱* @return*/String value();}

?再使用@annotation 標識自定義的日志注解的路徑

@Pointcut("@annotation(cn.zld.springbootwebsockettest.annotation.LogMethod)") public void executeLogMethod() {}@Before(value = "executeLogMethod()") public void methodBefore(JoinPoint joinPoint) {MethodSignature signature = (MethodSignature) joinPoint.getSignature();LogMethod declaredAnnotation = signature.getMethod().getDeclaredAnnotation(LogMethod.class);log.info("執行方法------>{}", declaredAnnotation.value());String[] parameterNames = signature.getParameterNames() }

最后將@LogMethod("getPage")注解加到想記錄的方法上即可

?

總結

以上是生活随笔為你收集整理的spring Aop实现日志的全部內容,希望文章能夠幫你解決所遇到的問題。

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