这一次,我们干脆点,直接进入正题。
第一步
使用这个模块,你必要加入的包依赖:
第二步
你需要告诉我,你的切入点(继承 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;
}
第四步
我们放大点,看得仔细
日志主要记录以下信息:
-
请求客户端IP
-
请求URL
-
请求的方式(GET/POST/…)
-
请求的类及相应的方法
-
请求的参数(json格式字符串)
-
返回的数据对象
-
此次请求花费的时间(单位:ns;ns 纳秒 1s=1000ms 1ms=1000us 1us=1000ns)
资料
[2] 本节测试代码 ☜
[3] JavaLib ☜
点击查看更多内容
4人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦