<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Spring Aop 獲取入?yún)⒑统鰠?/span>

      1. 概述

      本次,我利用 Spring Aop 的注解方式獲取切入點(diǎn)的入?yún)⒑统鰠ⅲ驗(yàn)楸容^簡單,所以就直接上代碼了。

      2. 代碼編寫

      注解類

      /**
       * 日志注解
       *
       * @author Jiantao Yan
       * @title: Log
       * @date 2021/1/5 20:33
       */
      @Target({ElementType.METHOD})
      @Retention(RetentionPolicy.RUNTIME)
      public @interface Log {
      }
      

      切入點(diǎn)

      /**
       * AOP 切入點(diǎn)測試
       *
       * @author Jiantao Yan
       * @title: AopService
       * @date 2021/1/5 20:29
       */
      @Slf4j
      @Service
      public class AopService {
      
          @Log
          public User save(User user) {
              log.info("------>save user={}", user);
              return user;
          }
      }
      
      

      切面

      /**
       * 日志切面
       *
       * @author Jiantao Yan
       * @title: LogAspect
       * @date 2021/1/5 20:33
       */
      @Slf4j
      @Aspect
      @Component
      public class LogAspect {
      
          /**
           * 以注解為切入點(diǎn)
           */
          @Pointcut("@annotation(com.tao.leanrn.demo.aop.Log)")
          public void pointcut() {
          }
      
          /**
           * 環(huán)繞通知
           * @param proceedingJoinPoint
           */
          @SneakyThrows
          @Around("pointcut()")
          public void around(ProceedingJoinPoint proceedingJoinPoint) {
              // 獲取入?yún)?        Object[] args = proceedingJoinPoint.getArgs();
              for (Object arg : args) {
                  // 入?yún)⑹欠駷?user
                  if (arg instanceof User) {
                      log.info("------->入?yún)閡ser={}", (User)arg);
                  }
                  log.info("----->入?yún)?arg={}", arg);
              }
      
              // 獲取出參
              Object result = proceedingJoinPoint.proceed();
              // 出參是否為 user
              if (result instanceof User) {
                  log.info("------->入?yún)閡ser,result={}", (User)result);
              }
              log.info("----->出參.result={}", result);
      
          }
      }
      

      實(shí)體類

      /**
       * 用戶
       *
       * @author Jiantao Yan
       * @title: User
       * @date 2021/1/5 20:30
       */
      @Data
      public class User {
      
          private Long id;
      
          private String username;
      
          private Integer age;
      }
      

      3. 結(jié)果驗(yàn)證

      單元測試編寫

      @Slf4j
      @SpringBootTest
      class AopServiceTest {
      
          @Autowired
          private AopService aopService;
      
          @Test
          void save() {
              User user = new User();
              user.setId(1L);
              user.setAge(19);
              user.setUsername("booleandev");
              User user1 = aopService.save(user);
              log.info("------------->user1={}", user1);
          }
      }
      

      結(jié)果

      2021-01-05 21:01:13.759  INFO 7440 --- [           main] com.tao.leanrn.demo.aop.LogAspect        : ------->入?yún)閡ser=User(id=1, username=booleandev, age=19)
      2021-01-05 21:01:13.774  INFO 7440 --- [           main] com.tao.leanrn.demo.aop.LogAspect        : ----->入?yún)?arg=User(id=1, username=booleandev, age=19)
      2021-01-05 21:01:13.786  INFO 7440 --- [           main] com.tao.leanrn.demo.aop.AopService       : ------>save user=User(id=1, username=booleandev, age=19)
      2021-01-05 21:01:13.787  INFO 7440 --- [           main] com.tao.leanrn.demo.aop.LogAspect        : ------->入?yún)閡ser,result=User(id=1, username=booleandev, age=19)
      2021-01-05 21:01:13.787  INFO 7440 --- [           main] com.tao.leanrn.demo.aop.LogAspect        : ----->出參.result=User(id=1, username=booleandev, age=19)
      2021-01-05 21:01:13.787  INFO 7440 --- [           main] com.tao.leanrn.demo.aop.AopServiceTest   : ------------->user1=null
      
      posted @ 2024-07-12 10:51  booleandev  閱讀(67)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产欧美日韩精品丝袜高跟鞋| 国内精品大秀视频日韩精品| 一出一进一爽一粗一大视频| 国产一区二区日韩经典| 国产资源精品中文字幕| 亚洲欧美人成电影在线观看| 国产99在线 | 免费| 狠狠爱五月丁香亚洲综| 孝感市| 国产成人精品三上悠亚久久| 天天色综网| 精品人妻一区二区三区四区在线 | 日韩精品中文字一区二区| 久久爱在线视频在线观看| 99久久99久久精品免费看蜜桃 | 亚洲第一香蕉视频啪啪爽| 欧洲性开放老太大| 国产精品久久久一区二区三区| 一区二区三区国产亚洲网站| 久久精品国产亚洲不AV麻豆| 亚洲成人精品一区二区中| 福利网午夜视频一区二区| 久久精品一区二区三区av| 精品国产欧美一区二区三区在线| 思思99热精品在线| 久久精品蜜芽亚洲国产av| 亚洲精品动漫一区二区三| 国产精品SM捆绑调教视频| 国产精品久久久久久久网| 国产69成人精品视频免费| 亚洲三级香港三级久久| 国产精品夜夜春夜夜爽久久小说| 国产jjizz女人多水喷水| 日本一区二区三区小视频| 桃花岛亚洲成在人线AV| 国产丝袜在线精品丝袜不卡| 九九热免费在线播放视频| 91久久偷偷做嫩草影院免费看| 亚洲香蕉av一区二区蜜桃| 江陵县| 精品一区二区中文字幕|