使用Aop切面记录用户访问日志
@Component
@Aspect
public class RequestAsprct {
//切入点说明:包下的任意类,任意方法,任意参数,任意返回值的方法都进行切入
@Pointcut("execution(public * cnki.bdms.parkmgmt.controller.*.*(..))")
public void sysLog() {
}
@Before("sysLog()")
public void doBefore(JoinPoint joinPoint) {
ServletRequestAttributes servletRequestAttributes =(ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = servletRequestAttributes.getRequest();
// 得到请求的资源
String requestUri = request.getRequestURI();
// 得到来访者的IP地址
String remoteAddr = request.getRemoteAddr();
// 得到请求URL地址时使用的方法
String method = request.getMethod();
//客户端主机名
String remoteHost = request.getRemoteHost();
String className = joinPoint.getSignature().getDeclaringTypeName()+"."+joinPoint.getSignature().getName();
System.out.println("+++++++从切入点开始处切入内容...");
System.out.println("requestUri=" + requestUri + ",remoteAddr=" + remoteAddr
+ ",method=" + method + ",remoteHost=" + remoteHost + ",className=" + className);
System.out.println("+++++++用户名称..." +SessionHelper.getLoginUserName());
System.out.println("+++++++用户对象..." +SessionHelper.getLoginUserInfo());
System.out.println("+++++++用户ID..." +SessionHelper.getLoginUserID());
System.out.println("+++++++用户code..." +SessionHelper.getLoginUserCode());
//将访问路径存入Redis
RedisUtil.set("11515151", 1);
Object o = RedisUtil.get("11515151");
System.out.println(o);
}
}
原文链接:https://www.cnblogs.com/sunny1009/articles/7815165.html