为了账号安全,请及时绑定邮箱和手机立即绑定

JavaLib | 使用AOP帮你记录日志

标签:
Java

这一次,我们干脆点,直接进入正题。

第一步

使用这个模块,你必要加入的包依赖:

AOP 记录日志模块需要的包依赖(红色边框)

第二步

你需要告诉我,你的切入点(继承 LBaseWebLogAspect,并实现 pointCut() 方法,配置你的切入点)

@Aspect
@Component
class WebLogAspect extends LBaseWebLogAspect {

    @Pointcut("execution(* com.fengwenyi.javalibexampleaoplog..*.*(..))")
    @Override
    protected void pointCut() { }
}

第三步

写一个接口进行测试,我们还是使用上一次的切口吧(完整代码)

package com.fengwenyi.javalibexampleaoplog;

import com.fengwenyi.javalib.aop.LBaseWebLogAspect;
import com.fengwenyi.javalib.result.DefaultReturnCode;
import com.fengwenyi.javalib.result.Result;
import com.fengwenyi.javalib.result.ResultResponseUtil;
import lombok.Data;
import lombok.experimental.Accessors;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class JavalibExampleAoplogApplication {

    public static void main(String[] args) {
        SpringApplication.run(JavalibExampleAoplogApplication.class, args);
    }

    /**
     * 获取所有用户数据
     * @return (json)
     */
    @GetMapping("/getUsers")
    public Result getUsers() {

        User user1 = new User().setName("冯文议").setAge(26).setGender("男");
        User user2 = new User().setName("张三").setAge(25).setGender("女");
        User user3 = new User().setName("李四").setAge(23).setGender("保密");
        User user4 = new User().setName("王五").setAge(20).setGender("未知");

        User [] users = {user1, user2, user3, user4};

        return ResultResponseUtil.ok().status(DefaultReturnCode.SUCCESS).data(users);

    }
}

@Aspect
@Component
class WebLogAspect extends LBaseWebLogAspect {

    @Pointcut("execution(* com.fengwenyi.javalibexampleaoplog..*.*(..))")
    @Override
    protected void pointCut() { }
}

@Data
@Accessors(chain = true)
class User {

    // 姓名
    private String name;
    // 年龄
    private Integer age;
    // 性别
    private String gender;

}

第四步

AOP 记录访问日志

我们放大点,看得仔细

放大点

日志主要记录以下信息:

  • 请求客户端IP

  • 请求URL

  • 请求的方式(GET/POST/…)

  • 请求的类及相应的方法

  • 请求的参数(json格式字符串)

  • 返回的数据对象

  • 此次请求花费的时间(单位:ns;ns 纳秒 1s=1000ms 1ms=1000us 1us=1000ns)

资料

点击查看更多内容
4人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消