一、定义一个注解
这个注解是用来控制是否需要保存操作日志的自定义注解(这个类似标记或者开关)
package com.xu.demo.common.anotation;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target(ElementType.METHOD) // 指定该注解只能应用于方法上
@Retention(RetentionPolicy.RUNTIME) // 运行时生效
public @interface Loggable { }
二、定义切面以及切面对应的方法
我们需要定义一个切面,已经切面的前置处理方法或者环绕方法,用来统一记录日志,部分截图如下:
package com.xu.demo.components;import com.alibaba.fastjson.JSONObject;
import com.xu.demo.common.anotation.Loggable;
import com.xu.demo.common.utils.IPUtils;
import com.xu.demo.common.utils.UserThreadLocal;
import com.xu.demo.model.