上文中说到使用AOP记录日志(如果感兴趣的用户可以看我的上一篇文章)使用AOP收集操作日志,这里我们再说一种写法,使用拦截器收集用户的日志信息,本人开始还是推荐使用AOP写的,后面因为需求问题,有风控的功能,当用户被风控了,还得记录用户的操作日志信息,因为AOP和拦截器执行顺序的问题,导致无法记录到用户被风控后的日志,所以我这里就改成了使用拦截器,拦截器可以设置优先级顺序执行,所以最终还是使用了拦截器
1.首先还是我们没有用swagger,只用手写注解,获取用户的操作内容和操作模块
2.使用自定义注解,引入@interface
package info.bitfx.model.enums;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface OperationLogger {
/**
* 操作模块
*
* @return
*/
String modelName() default "";
/**
* 操作具体内容
*
* @return
*/
String option();
}
3.我们开始编写拦截器来进行收集具体的操作日志信息
package info.bitfx.intercepter;
import info.bitfx.model.enums.OperationLogger;
import info.bitfx.model.po.CompanyLoggerInfo;
import info.bitfx.model.po.StaffPO;
import info.bitfx.model.utils.AddressUtils;
import info.bitfx.model.utils.IPUtils;
import info.bitfx.service.CompanyLoggerInfoService;
import info