精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring Boot 使用 AOP 記錄日志

開發(fā) 前端
在項目開發(fā)中經(jīng)常,日志系統(tǒng)是必不可少的,特別是管理系統(tǒng),對于重要的操作都會有操作日志,然而這個操作不需要我們在相應(yīng)的方法中一個一個的去實現(xiàn),這肯定是不合適的,這樣的操作無疑是加大了開發(fā)量,而且不易維護,所以實際項目中總是利用AOP(Aspect Oriented Programming)即面向切面編程來記錄系統(tǒng)中的操作日志。

[[384373]]

本文轉(zhuǎn)載自微信公眾號「武培軒」,作者武培軒 。轉(zhuǎn)載本文請聯(lián)系武培軒公眾號。

在項目開發(fā)中經(jīng)常,日志系統(tǒng)是必不可少的,特別是管理系統(tǒng),對于重要的操作都會有操作日志,然而這個操作不需要我們在相應(yīng)的方法中一個一個的去實現(xiàn),這肯定是不合適的,這樣的操作無疑是加大了開發(fā)量,而且不易維護,所以實際項目中總是利用AOP(Aspect Oriented Programming)即面向切面編程來記錄系統(tǒng)中的操作日志。

下面就來介紹如何在 Spring Boot 中 使用 AOP 記錄日志:

加入依賴

首先加入 AOP 依賴:

  1. <dependency> 
  2.  <groupId>org.springframework.boot</groupId> 
  3.  <artifactId>spring-boot-starter-aop</artifactId> 
  4. </dependency> 

 

創(chuàng)建日志注解類

創(chuàng)建一個日志注解類,這樣就可以在需要記錄日志的方法上加上注解就可以記錄日志了,注解內(nèi)容如下:

  1. @Target({ElementType.PARAMETER, ElementType.METHOD}) 
  2. @Retention(RetentionPolicy.RUNTIME) 
  3. @Documented 
  4. public @interface AopLogger { 
  5.  
  6.     String describe() default ""

配置 AOP 切面

定義一個 AopLoggerAspect 切面類,用 @Aspect 聲明該類為切面類。

  1. @Component 
  2. public class AopLoggerAspect { 
  3.     private final Logger logger = LoggerFactory.getLogger(this.getClass()); 
  4.  
  5.     @Pointcut("@annotation(com.wupx.aop.logger.annotation.AopLogger)"
  6.     public void aopLoggerAspect() { 
  7.     } 
  8.  
  9.     /** 
  10.      * 環(huán)繞觸發(fā) 
  11.      * 
  12.      * @param point 
  13.      * @return 
  14.      */ 
  15.     @Around("aopLoggerAspect()"
  16.     public Object doAround(ProceedingJoinPoint point) { 
  17.         RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); 
  18.         ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes; 
  19.         HttpServletRequest request = servletRequestAttributes.getRequest(); 
  20.         Object result = null
  21.         long startTime = System.currentTimeMillis(); 
  22.         try { 
  23.             result = point.proceed(); 
  24.         } catch (Throwable throwable) { 
  25.             throwable.printStackTrace(); 
  26.             logger.error(throwable.getMessage()); 
  27.         } 
  28.         String describe = getAopLoggerDescribe(point); 
  29.         if (StringUtils.isBlank(describe)) { 
  30.             describe = "-"
  31.         } 
  32.         // 打印請求相關(guān)參數(shù) 
  33.         logger.info("========================================== Start =========================================="); 
  34.         logger.info("Describe       : {}", describe); 
  35.         // 打印請求 url 
  36.         logger.info("URL            : {}", request.getRequestURL()); 
  37.         logger.info("URI            : {}", request.getRequestURI()); 
  38.         // 打印 Http method 
  39.         logger.info("HTTP Method    : {}", request.getMethod()); 
  40.         // 打印調(diào)用 controller 的全路徑以及執(zhí)行方法 
  41.         logger.info("Class Method   : {}.{}", point.getSignature().getDeclaringTypeName(), point.getSignature().getName()); 
  42.         // 打印請求的 IP 
  43.         logger.info("IP             : {}", request.getRemoteAddr()); 
  44.         // 打印請求入?yún)?nbsp;
  45.         logger.info("Request Args   : {}", point.getArgs()); 
  46.         // 打印請求出參 
  47.         logger.info("Response Args  : {}", result); 
  48.         logger.info("Time Consuming : {} ms", System.currentTimeMillis() - startTime); 
  49.         logger.info("=========================================== End ==========================================="); 
  50.         return result; 
  51.     } 
  52.  
  53.     /** 
  54.      * 獲取注解中對方法的描述信息 
  55.      * 
  56.      * @param joinPoint 切點 
  57.      * @return describe 
  58.      */ 
  59.     public static String getAopLoggerDescribe(JoinPoint joinPoint) { 
  60.         MethodSignature signature = (MethodSignature) joinPoint.getSignature(); 
  61.         Method method = signature.getMethod(); 
  62.         AopLogger controllerLog = method.getAnnotation(AopLogger.class); 
  63.         return controllerLog.describe(); 
  64.     } 

其中 「@Pointcut」 是定義一個切點,后面跟隨一個表達式,表達式可以定義為某個 package 下的方法,也可以是自定義注解等。

「@Around」 為在切入點前后織入代碼,并且可以自由的控制何時執(zhí)行切點。

測試

接下來編寫 Controller 層來進行測試:

  1. @RestController 
  2. @RequestMapping("/user"
  3. public class UserController { 
  4.  
  5.     private final UserService userService; 
  6.  
  7.     public UserController(UserService userService) { 
  8.         this.userService = userService; 
  9.     } 
  10.  
  11.     @PostMapping 
  12.     @AopLogger(describe = "添加用戶"
  13.     public String addUser(@RequestBody User user) { 
  14.         UserEntity userEntity = new UserEntity(); 
  15.         BeanUtils.copyProperties(user, userEntity); 
  16.         return userService.addUser(userEntity); 
  17.     } 

只需要在接口上填寫 @AopLogger 就可以記錄操作日志。

啟動服務(wù),通過 PostMan 請求 http://localhost:8080/user 接口,輸出的日志如下所示:

可以看到把入?yún)ⅰ⒊鰠⒁约敖涌谛畔⒍加涗浟讼聛恚遣皇呛芎唵文兀恍枰唵螏撞骄涂梢詫崿F(xiàn) AOP 日志,大家可以自己實踐下。

本文的完整代碼在 https://github.com/wupeixuan/SpringBoot-Learn 的 aop-logger 目錄下。

責(zé)任編輯:武曉燕 來源: 武培軒
相關(guān)推薦

2022-02-08 17:07:54

Spring BooSpring Aop日志記錄

2022-02-17 13:39:09

AOP接口方式

2025-10-14 07:59:41

2021-08-11 05:00:48

Spring 日志手段

2024-09-02 00:27:51

SpringAOP自定義

2022-09-26 10:01:04

SpringAOP日志

2009-06-19 11:09:27

Spring AOP

2022-05-12 11:38:26

Java日志Slf4j

2023-09-13 08:56:51

2025-06-17 07:37:53

2021-05-18 07:30:36

開發(fā)Spring Boot日志

2009-06-19 13:28:30

Spring AOPSpring 2.0

2022-06-07 07:58:45

SpringSpring AOP

2012-07-11 14:31:16

SpringAop

2025-03-12 14:09:56

2019-04-15 08:32:25

Spring Boot日志門面模式

2023-05-11 12:40:00

Spring控制器HTTP

2020-10-18 08:51:18

Spring Boot

2009-06-22 10:41:34

Spring.AOP

2022-06-08 08:04:28

Springservicerepository
點贊
收藏

51CTO技術(shù)棧公眾號

六月婷婷色综合| 成人羞羞网站入口| 亚洲va韩国va欧美va精品| 精品国产免费久久久久久尖叫| 特级西西444www大精品视频免费看| 免费毛片在线不卡| 欧美一区二区人人喊爽| 免费看国产曰批40分钟| 亚洲中文字幕一区| 精品国模一区二区三区| 亚洲免费观看高清完整版在线观看熊| 国产精品毛片一区视频| 无码人妻av一区二区三区波多野| 久久久久久影院| 日韩精品亚洲视频| 久久6免费视频| 一个人看的www视频在线免费观看| 国产精品麻豆视频| 国产一区二区黄色| 97人妻精品一区二区三区视频| 99riav1国产精品视频| www国产精品视频| 超碰97在线资源站| 亚洲成人偷拍| 欧美人与禽zozo性伦| 少妇无码av无码专区在线观看| 日韩理伦片在线| 91蜜桃在线观看| 波多野结衣精品久久| 夜夜躁日日躁狠狠久久av| 影院欧美亚洲| 欧美福利视频在线| 综合五月激情网| 成人毛片免费| 欧美日韩国产中字| 日本大片免费看| 国产高清不卡视频| 肉肉av福利一精品导航| 97精品国产97久久久久久春色| 亚洲精品自拍视频在线观看| 亚洲人亚洲人色久| 欧美日韩中文字幕在线| 好色先生视频污| 18视频免费网址在线观看| 久久久久久一二三区| 国内视频一区二区| 秋霞网一区二区| 国产成人亚洲综合a∨婷婷图片 | 久久精品美女| 性色av蜜臀av| 国产成人免费xxxxxxxx| 亚洲一区二区三| 国产精品国产三级国产aⅴ| 美女视频黄 久久| 国产精品视频xxx| 自拍偷拍你懂的| 欧美色婷婷久久99精品红桃| 亚洲人成绝费网站色www| 亚洲成人网在线播放| 蜜桃一区二区三区| 亚洲欧美制服另类日韩| 白白色免费视频| 久草综合在线| 尤物av一区二区| 肉大捧一出免费观看网站在线播放 | 日韩成人av影视| 国产精品狠色婷| 久久久久久av无码免费看大片| 日韩av高清在线观看| 国产女同一区二区| 精品一区二区三区四| 亚洲欧美亚洲| 午夜精品视频网站| 在线观看日本视频| 蜜臂av日日欢夜夜爽一区| 国产日韩在线一区| 亚洲产国偷v产偷v自拍涩爱| 99久久精品国产一区二区三区| 久久精品久久精品国产大片| 超碰在线影院| 国产精品欧美极品| 国产又粗又长又爽视频| 深夜在线视频| 欧美撒尿777hd撒尿| 性生活一级大片| 黄色免费大全亚洲| 伊人精品在线观看| 欧美激情图片小说| 国产精品亚洲欧美| 国产日韩欧美在线观看| 免费观看的毛片| 国产午夜精品一区二区三区视频| 综合操久久久| 成人免费一区二区三区牛牛| 最新日韩av在线| 国产天堂视频在线观看| 天天免费亚洲黑人免费| 日韩欧美亚洲国产另类| 丝袜美腿中文字幕| 久久精品影视| 欧美一区二区三区免费观看| 国产美女主播在线观看| 91片黄在线观看| 91制片厂免费观看| 日本在线免费| 亚欧色一区w666天堂| 狠狠躁狠狠躁视频专区| 动漫av一区| 日韩欧美色电影| 尤物视频最新网址| 欧美日韩精品免费观看视频完整| www.日韩系列| 国产精品第9页| 精品无人码麻豆乱码1区2区 | 亚洲素人一区二区| 亚洲精品在线视频观看| 成人在线免费观看黄色| 欧美日韩国产精品自在自线| 久久久久成人精品无码中文字幕| 国产精品二区不卡| 国产z一区二区三区| www日本高清| 欧美国产视频在线| 国产极品尤物在线| 视频一区中文字幕精品| 丝袜美腿亚洲一区二区| 亚洲欧美综合自拍| 高清在线观看日韩| 色中文字幕在线观看| 中文另类视频| 欧美日韩黄视频| 法国伦理少妇愉情| 亚洲精品乱码| 91精品国产高清久久久久久91裸体| 久久经典视频| 疯狂做受xxxx欧美肥白少妇| 2018国产精品| 久久精品国产亚洲blacked| 久久精品亚洲热| 免费黄色片视频| 久久久精品黄色| 久久精品免费一区二区| 开心激情综合| 午夜免费久久久久| 手机av在线免费观看| 亚洲永久精品大片| 成人啪啪18免费游戏链接| 国产精品大片免费观看| 91黄在线观看| 精品日韩av| 精品福利一二区| 国产精品suv一区二区| 成人黄色在线看| 给我免费播放片在线观看| youjizz亚洲| 91国产精品视频在线| 五月婷婷在线观看视频| 欧美日韩一区二区免费在线观看 | ww久久中文字幕| 国产偷人视频免费| 欧美美女视频| 国产中文日韩欧美| www在线观看播放免费视频日本| 欧美精品aⅴ在线视频| 波多野结衣家庭教师| 国产精品亚洲一区二区三区在线| 伊人春色在线观看| 超碰97久久| 亚洲免费人成在线视频观看| 性xxxxxxxxx| 国内精品久久久久久久影视麻豆 | 国产毛片视频网站| 日韩欧美中文字幕电影| 国产成人激情小视频| 91在线网址| 欧美一级片在线观看| 国产精品18p| 久久精品人人做| 天天干天天色天天干| 激情久久婷婷| 日本一区二区三区视频在线观看| 久久人体av| 欧美大尺度在线观看| 在线观看xxx| 欧美日韩高清一区二区三区| 欧美丰满艳妇bbwbbw| 91论坛在线播放| 成 人 黄 色 小说网站 s色| 黄色欧美日韩| 日韩欧美亚洲日产国| 日韩精品久久久久久久软件91| 97精品在线视频| 三级在线视频| 在线综合视频播放| 国产三级av片| 综合久久久久久| 中文字幕在线观看网址| 精品亚洲porn| 成人免费观看视频在线观看| 国产精品毛片久久| 久久亚洲高清| 久久wwww| 国产精品福利在线观看| 国产丝袜在线播放| 这里只有精品在线观看| 天堂在线视频观看| 欧美精品久久99| 亚洲va在线观看| 一区二区三区国产豹纹内裤在线| 亚洲无人区码一码二码三码的含义| 国产久卡久卡久卡久卡视频精品| 国产裸体舞一区二区三区| 亚洲无吗在线| 国产高清精品软男同| 国产欧美亚洲精品a| 精品国产乱码久久久久软件| 日韩精品成人在线观看| 成人福利网站在线观看| 国产精品扒开腿做爽爽爽视频软件| 久久国产精品久久久| 成人p站proumb入口| 日韩国产中文字幕| 亚洲精品久久久久avwww潮水| 欧美人妖巨大在线| 波多野结衣激情视频| 欧美日韩国产一中文字不卡| 国产精品成人国产乱| 亚洲精品成人悠悠色影视| 男人天堂资源网| 国产视频一区在线观看| 成人网站免费观看| www.欧美色图| av不卡中文字幕| 国产黄色精品网站| 一级片黄色免费| 精品一区二区影视| 国产福利在线免费| 免费精品视频最新在线| 黄色成人免费看| 国产欧美日韩在线观看视频| 国产在线播放一区二区| 超碰成人福利| 国产精品日韩欧美一区二区三区| 亚洲91网站| 福利视频一区二区三区| 最新国产精品精品视频| 91久久国产综合久久蜜月精品| 精品视频在线播放一区二区三区| 国产精品视频精品| 高清亚洲高清| 国产日韩欧美自拍| 欧美不卡在线观看| 99在线看视频| 国语一区二区三区| 国产视频一区二区三区四区| 任你弄精品视频免费观看| 精品日韩美女| 国产欧美日韩精品高清二区综合区| 欧美亚洲免费高清在线观看| 国产一区二区在线| 亚洲日本理论电影| 五月开心六月丁香综合色啪| 国产一二三四区在线观看| 欧美区亚洲区| 浮妇高潮喷白浆视频| 亚洲一区成人| 男女啪啪网站视频| 国产在线一区二区综合免费视频| 全黄性性激高免费视频| 国产欧美另类| 亚洲精品一二三四五区| 久久国产精品一区二区| 国产成人精品综合久久久久99| www.欧美日韩| 成人在线观看免费高清| 亚洲精品乱码久久久久久黑人| 国产无码精品在线观看| 日本韩国精品一区二区在线观看| 亚洲特级黄色片| 日韩欧美123| 蝌蚪视频在线播放| 久久夜色精品国产| 欧亚在线中文字幕免费| 国产欧美一区二区三区四区| 99精品中文字幕在线不卡| 鲁丝一区二区三区免费| 欧美高清在线| 免费看国产曰批40分钟| 老司机精品视频一区二区三区| 在线观看一区二区三区视频| 久久综合99re88久久爱| 欧美黄色aaa| 欧美日韩中文字幕在线视频| 国产伦精品一区二区三区四区 | 免费高清视频在线观看| 91网站在线播放| 欧美激情精品久久久久久免费| 亚洲18女电影在线观看| ,一级淫片a看免费| 日韩av影视在线| 国产福利在线播放麻豆| 日本欧美一二三区| 欧美久久亚洲| 视频一区二区三| 99精品视频免费观看| 肉色超薄丝袜脚交| 欧美极品xxx| 久久久久久91亚洲精品中文字幕| 3d成人h动漫网站入口| 黄色大片在线免费观看| 久久久久亚洲精品| 亚洲免费一区| 日韩精品不卡| 在线亚洲欧美| 日韩高清一二三区| 成人免费在线观看入口| 日本三级一区二区三区| 亚洲国产成人精品女人久久久 | 免费欧美激情| 国产黄色片免费在线观看| 极品尤物av久久免费看| 中字幕一区二区三区乱码| 欧美日韩美女在线| 欧美自拍偷拍一区二区| 不卡毛片在线看| 亚洲一区二区三区久久久| 神马影院一区二区| 久久一区二区三区四区五区| 成人无码www在线看免费| 亚洲成av人在线观看| 亚洲AV无码精品国产| 麻豆一区二区在线观看| 亚洲一区二区小说| 大地资源第二页在线观看高清版| 日韩**一区毛片| 亚洲无人区码一码二码三码的含义| 岛国视频午夜一区免费在线观看 | 成人午夜电影网站| 美女福利视频在线观看| 欧美一级高清片| av中文字幕在线播放| 成人情趣片在线观看免费| 爽成人777777婷婷| www欧美激情| 中文字幕 久热精品 视频在线| 中文字幕在线日本| 国产午夜精品一区理论片飘花 | 免费网站成人| 色偷偷9999www| xxxxx.日韩| 亚洲精品成人久久久998| 麻豆一区二区三| 亚洲欧美卡通动漫| 91精品国产高清一区二区三区| 成人影欧美片| 成人黄色在线免费观看| 国产主播一区| 人体私拍套图hdxxxx| 欧美性xxxx在线播放| 国产九色在线| 国产这里只有精品| 欧美精品啪啪| xxxxxx黄色| 在线视频一区二区免费| 成人av手机在线| 久久久久久这里只有精品| 久久久久97| 亚洲精品高清无码视频| 国产精品久久久久久福利一牛影视 | 国产系列电影在线播放网址| 国产精品视频xxxx| 欧美日韩在线大尺度| 日本一卡二卡在线| 91精品福利视频| www在线免费观看视频| 国精产品99永久一区一区| 日韩精品一二三四| 国产极品国产极品| 亚洲国产欧美自拍| 菠萝蜜视频国产在线播放| av激情久久| 男人的天堂亚洲| 在线观看亚洲网站| 亚洲国产精品推荐| 成人国产精品| 欧美极品少妇无套实战| 久久女同互慰一区二区三区| 在线观看视频二区| 孩xxxx性bbbb欧美| 久久高清免费| 在线免费播放av| 欧美高清视频不卡网| 2019中文字幕在线电影免费| 日韩福利一区二区三区| 国产69精品一区二区亚洲孕妇| 日韩美一区二区| 欧美激情18p| 久久国产精品成人免费观看的软件| av在线天堂网| 欧美午夜在线一二页|