自定义拦截器

1、创建用户操作标识枚举

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UserOperateLog {
 String value();
 String valueEn();
}

2、创建枚举拦截器,用来记录用户操作行为

@Component
@Aspect
public class UserOperateLogAspect {
 @Around("@annotation(UserOperateLog)")
 @SneakyThrows
 public Object aroundAspect(ProceedingJoinPoint joinPoint){
 //拼接用户操作日志模型
 
 //实际请求
 Object o =joinPoint.proceed();
 
 //填充模型
 
 //异步写入数据库
 
 return o;
 }
}

3、测试案例

public class TestModel {
 @UserOperateLog(value = "测试操作",valueEn="test")
 public void test1() {
 }
 public String test2() {
 return "";
 }
}

4、数据库字段

1、id
2、用户操作描述(UserOperateLog.value)
3、请求url
4、请求参数
5、返回结果
6、耗时
7、用户id
8、用户名
9、创建时间
10、请求结果是否失败
11、异常信息
12、英文描述(UserOperateLog.valueEn)
作者:SamZhang原文地址:https://segmentfault.com/a/1190000043587646

%s 个评论

要回复文章请先登录注册