自定义拦截器
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)