java微信公众号小程序商城源码ssm_基于ssm的微信小程序商城综合管理后台,包括微信小程序和管理后台...

本文档介绍了一个基于SSM(Spring、SpringMVC、MyBatis)的微信小程序商城的系统日志切面处理类。通过使用AOP(面向切面编程)来记录用户操作,包括日志注解、方法调用、参数获取、IP地址、用户名等关键信息的记录,并集成ShiroUtils获取用户信息。
摘要由CSDN通过智能技术生成

package com.platform.aop;

import com.alibaba.fastjson.JSON;

import com.platform.annotation.SysLog;

import com.platform.entity.SysLogEntity;

import com.platform.entity.SysUserEntity;

import com.platform.service.SysLogService;

import com.platform.utils.HttpContextUtils;

import com.platform.utils.IPUtils;

import com.platform.utils.ShiroUtils;

import org.aspectj.lang.JoinPoint;

import org.aspectj.lang.annotation.Aspect;

import org.aspectj.lang.annotation.Before;

import org.aspectj.lang.annotation.Pointcut;

import org.aspectj.lang.reflect.MethodSignature;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;

import java.lang.reflect.Method;

import java.util.Date;

/**

* 系统日志,切面处理类

*

* @author lipengjun

* @email [email protected]

* @date 2017年3月8日 上午11:07:35

*/

@Aspect

@Component

public class SysLogAspect {

@Autowired

private SysLogService sysLogService;

@Pointcut("@annotation(com.platform.annotation.SysLog)")

public void logPointCut() {

}

@Before("logPointCut()")

public void saveSysLog(JoinPoint joinPoint) {

MethodSignature signature = (MethodSignature) joinPoint.getSignature();

Method method = signature.getMethod();

SysLogEntity sysLog = new SysLogEntity();

SysLog syslog = method.getAnnotation(SysLog.class);

if (syslog != null) {

//注解上的描述

sysLog.setOperation(syslog.value());

}

//请求的方法名

String className = joinPoint.getTarget().getClass().getName();

String methodName = signature.getName();

sysLog.setMethod(className + "." + methodName + "()");

//请求的参数

Object[] args = joinPoint.getArgs();

String params = JSON.toJSONString(args[0]);

sysLog.setParams(params);

//获取request

HttpServletRequest request = HttpContextUtils.getHttpServletRequest();

//设置IP地址

sysLog.setIp(IPUtils.getIpAddr(request));

//用户名

SysUserEntity sysUserEntity = ShiroUtils.getUserEntity();

String username = "";

if ("login".equals(methodName)) {

username = params;

}

if (null != sysUserEntity) {

username = ShiroUtils.getUserEntity().getUsername();

}

sysLog.setUsername(username);

sysLog.setCreateDate(new Date());

//保存系统日志

sysLogService.save(sysLog);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值