zoukankan      html  css  js  c++  java
  • springboot整合aop全局日志管理

    1.引入jar包

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.4</version>
    </dependency>

    2.aop日志类

    @Log4j2
    @Aspect
    @Component
    public class WebLogAspect {
    
        @Pointcut("execution(public * io.renren.controller.*.*(..))")
        public void logCut() {
        }
    
        @Before("logCut()")
        public void doBefore(JoinPoint joinPoint) {
            // 接收到请求,记录请求内容
            ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
            HttpServletRequest request = attributes.getRequest();
    
            log.info("请求地址 : " + request.getRequestURL().toString());
            log.info("参数 : " + Arrays.toString(joinPoint.getArgs()));
        }
    
        @Around("logCut()")
        public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
            long startTime = System.currentTimeMillis();
            Object ob = pjp.proceed();// ob 为方法的返回值
            log.info("请求耗时 : " + (System.currentTimeMillis() - startTime) / 1000.0 + "s");
            return ob;
        }
    }
    

    再次启动项目,控制台将输出日志,并将日志写入到文件中

    3.利用aop实现表单防重复提交

    方法1:

    1.后端生成一个唯一的提交令牌(token),并存储在缓存中。

    2.页面提交请求携带这个提交令牌,后端验证并在第一次验证后删除该令牌,保证提交请求的唯一性。

    方法2:

    1.自定义注解 @NoRepeatSubmit 标记Controller中的提交请求

    2.通过AOP 对所有标记了 @NoRepeatSubmit 的方法拦截

    3.在业务方法执行前,获取当前用户的 token + 当前请求地址,作为一个唯一 KEY,去获取锁

    4.业务方法执行后,释放锁

     

  • 相关阅读:
    生信入门-爱课程上的华中农业大学
    PAT 1115 Counting Nodes in a BST[构建BST]
    PAT 1133 Splitting A Linked List[链表][简单]
    PAT 1037 Magic Coupon[dp]
    PAT 1033 To Fill or Not to Fill[dp]
    畅通工程续 HDU1874
    Free DIY Tour HDU1224
    六度分离 HDU1869
    Arbitrage HDU1217
    floyed算法
  • 原文地址:https://www.cnblogs.com/xxrl-c/p/12195945.html
Copyright © 2011-2022 走看看