springboot使用拦截器收集用户的操作日志信息

本文介绍了在SpringBoot中如何利用拦截器收集用户操作日志,以替代AOP来满足特定需求。通过自定义注解、编写拦截器并注册,实现了在用户风控场景下仍能记录日志。测试表明,该功能成功记录了用户操作信息。总结指出,拦截器和AOP各有适用场合,可根据业务选择合适的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上文中说到使用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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值