Spring Boot利用AOP获取用户操作实现日志记录

1、实现流程

在这里插入图片描述
在这里插入图片描述

/**
 * 系统日志:切面处理类
 */
@Aspect
@Component
public class SysLogAspect {
 
    @Autowired
    private SysLogService sysLogService;
 
    //定义切点 @Pointcut
    //在注解的位置切入代码
    @Pointcut("@annotation(cn.springboot.util.Operation)")
    public void logPoinCut() {
    }
 
    //切面 配置通知
    @AfterReturning("logPoinCut()")
    public void saveSysLog(JoinPoint joinPoint) {
        //保存日志
        SysLog sysLog = new SysLog();
 
        //从切面织入点处通过反射机制获取织入点处的方法
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        //获取切入点所在的方法
        Method method = signature.getMethod();
 
 
        //获取操作
        Operation operation = method.getAnnotation(Operation.class);
        if (operation != null) {
            String value = operation.value();
            sysLog.setOperation(value);//保存获取的操作
        }
 
        //获取请求的类名
        String className = joinPoint.getTarget().getClass().getName();
 
        //获取请求的方法名
        String methodName = method.getName();
        sysLog.setMethod(className + "." + methodName);
 
        //请求的参数
        Object[] args = joinPoint.getArgs();
        //将参数所在的数组转换成json
        String params = null;
        try {
            params = JacksonUtil.obj2json(args);
        } catch (Exception e) {
            e.printStackTrace();
        }
        sysLog.setParams(params);
 
        //请求的时间
        sysLog.setCreateDate(new Date());
 
        //获取用户名
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        if (!(authentication instanceof AnonymousAuthenticationToken)) {
            sysLog.setUsername(authentication.getName());
        }
 
        //获取用户ip地址
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
                .getRequest();
        sysLog.setIp(IpAdrressUtil.getIpAdrress(request));
 
        //调用service保存SysLog实体类到数据库
        sysLogService.saveLog(sysLog);
    }
 
}

根据切点来进行相关操作,可以拿到注解里面的值,也可以进行存库处理。

Spring Boot利用AOP获取用户操作实现日志记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
电视用户数据分析全文共12页,当前为第1页。电视用户数据分析全文共12页,当前为第1页。 电视用户数据分析全文共12页,当前为第1页。 电视用户数据分析全文共12页,当前为第1页。 电视用户数据分析 电视用户数据分析全文共12页,当前为第2页。电视用户数据分析全文共12页,当前为第2页。文档修改记录 电视用户数据分析全文共12页,当前为第2页。 电视用户数据分析全文共12页,当前为第2页。 修改日期 修改人 修改说明 版本号 修改页 电视用户数据分析全文共12页,当前为第3页。电视用户数据分析全文共12页,当前为第3页。目 录 电视用户数据分析全文共12页,当前为第3页。 电视用户数据分析全文共12页,当前为第3页。 1 总体描述 4 1.1 建设目标 4 1.2 整体架构 4 2 功能实现 6 2.1 数据采集模块 6 2.1.1 数据收集 6 2.1.2 数据处理 6 2.2 数据分析 7 2.3 数据可视化 8 2.4 系统管理 9 3 初步方案 10 3.1 C平台接口日志分析 10 3.2 流水文件分析 11 4 技术实现 11 电视用户数据分析全文共12页,当前为第4页。电视用户数据分析全文共12页,当前为第4页。总体描述 电视用户数据分析全文共12页,当前为第4页。 电视用户数据分析全文共12页,当前为第4页。 建设目标 互联网电视是建立在通信网络上的互动性视频服务,可以非常灵活地实现电子菜单、节目预约、实时快进、快退等操作。通过对OTT用户的实时数据收集,统计分析,建设实时数据分析系统,对OTT的EPG界面设计、内容运营有着重要意义。 系统在通过对OTT业务运营平台数据收集的基础上,实时(定期)获取用户行为数据,结合业务运营平台数据日志用户端APK上报日志等数据,通过大数据处理平台(如Hadoop),对OTT的各纬度指标进行统计分析,并提供用户自定义分析功能,进行数据展示,为EPG的界面设计和运营建设提供决策依据。 整体架构 电视用户数据分析全文共12页,当前为第5页。电视用户数据分析全文共12页,当前为第5页。数据抓取 电视用户数据分析全文共12页,当前为第5页。 电视用户数据分析全文共12页,当前为第5页。 负责整个互联网电视运营中心平台或者分平台系统的原始基础数据的获取,包括2部分内容:(1)平台日志:结合运营平台的日志管理模块,实现获取并接收用户的行为数据;(2)APK日志上报。提供数据接口,且支持FTP等传输导入。 数据抓取用于接入存储数据,目前分为三部分: (1)C平台各业务系统通过AOP方式将各接口调用情况输出标准日志,由FLUME进行抓取;再通过KAFKA将数据输送到STORM 中;STORM 将元数据直接存放到HDFS中。 (2)各业务系统的错误日志转换为json后直接存放到ES中,方便查找。 (3)将流水文件(需转换为csv格式)和流水日志(导出txt格式)通过文档上传系统上传到HDFS中,文件所在的文件夹以当天日期命名(减少需处理的文件数量,提高效率)。 数据分析 基于hadoop大数据处理技术,将数据收集获取到的基础数据,进行数据预处理、数据统计计算,包括数据排重、数据清洗、结果展示指标计算等,并将原始数据、结果表数据进行存储和备份。根据多维度的数据展示需求,设计结果表数据,并对其进行实时统计计算,并将结果数据,推送给前端展示平台。另外还提供用户自定分析功能,用于对原始数据和结果表数据的自定义查询和分析功能,便于非数据分析人员对系统进行二次分析。 数据分析用于对指定数据进行切割分解为各个维度,给展示系统提供数据支撑: (1)由STORM 对C平台接口日志进行处理,将处理后的数据存放到ELK中进行展示。 (2)由SPARK离线处理HDFS上的流水文件,将处理后的数据保存到mongodb中。(设定时任务每天零点自动开始SPARK任务,对以前一天日期命名的文件夹下的数据进行处理)。 可视化系统(BI) BI系统负责可视化数据分析模块建设,将数据分析的数据,在显示终端进行可视化图形展示。BI系统是对分析后结果进行展示,用于图形化展示最终的分析结果: 初期是使用ECharts 等图表插件绘制展示图形; 后期由项目根据传来的数据和模型自动绘制图形。 电视用户数据分析全文共12页,当前为第6页。电视用户数据分析全文共12页,当前为第6页。数据挖掘 电视用户数据分析全文共12页,当前为第6页。 电视用户数据分析全文共12页,当前为第6页。 数据挖掘对离线数据进行分析,形成相关模型,并用模型对数据进行计算分析:使用SPARK Mllib (机器学习)训练模型,来完成精准推荐和视频打分等功能。 元数据管理与数据质量管理系统 元数据管理对接入的数据进行管理,数据质量管理是对云平台上存储数据进行质量控制,保

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bst@微胖子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值