首页>代码>基于SpringBoot+freemarker实现的人事管理系统>/person_system/person-admin/src/main/java/com/person/common/aspect/SysLogAspect.java
/** * * * * * */ package com.person.common.aspect; import com.google.gson.Gson; import com.person.common.annotation.SysLog; import com.person.modules.sys.entity.SysLogEntity; import com.person.modules.sys.entity.SysUserEntity; import com.person.modules.sys.service.SysLogService; import com.person.common.utils.HttpContextUtils; import com.person.common.utils.IPUtils; import org.apache.shiro.SecurityUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; 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 */ @Aspect @Component public class SysLogAspect { @Autowired private SysLogService sysLogService; @Pointcut("@annotation(com.person.common.annotation.SysLog)") public void logPointCut() { } @Around("logPointCut()") public Object around(ProceedingJoinPoint point) throws Throwable { long beginTime = System.currentTimeMillis(); //执行方法 Object result = point.proceed(); //执行时长(毫秒) long time = System.currentTimeMillis() - beginTime; //保存日志 saveSysLog(point, time); return result; } private void saveSysLog(ProceedingJoinPoint joinPoint, long time) { 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(); try{ String params = new Gson().toJson(args[0]); sysLog.setParams(params); }catch (Exception e){ } //获取request HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); //设置IP地址 sysLog.setIp(IPUtils.getIpAddr(request)); //用户名 String username = ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername(); sysLog.setUsername(username); sysLog.setTime(time); sysLog.setCreateDate(new Date()); //保存系统日志 sysLogService.save(sysLog); } }
![](https://static.zuidaima.com/resource/img/heart_ico.png)
微信网友_7134912998903808 LV9
8月29日
255921158 LV4
7月16日
2578193624 LV2
6月1日
qwe6002 LV10
5月24日
可是不知道么 LV23
4月16日
zolscy LV12
4月4日
微信网友_6927932988952576 LV12
3月30日
儒雅男士 LV8
3月27日
阿昌先生 LV13
3月27日
微信网友_6444139264921600 LV6
3月24日
![](https://static.zuidaima.com/resource/img/cattle_ico.png)
微信网友_7134912998903808 LV9
8月29日
wwwzzzjjj LV15
8月21日
255921158 LV4
7月16日
疯狂小太阳
7月9日
暂无贡献等级
ZALZXB20030525
7月1日
暂无贡献等级
放鞭炮 LV1
6月29日
li151789
6月27日
暂无贡献等级
a562571298 LV8
6月23日
lilu0226 LV7
6月23日
17380184110
6月19日
暂无贡献等级