d20866874a11f6df6af46825775e598f7965734f.svn-base 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package org.jeecg.modules.ngalain.aop;
  2. import javax.servlet.http.HttpServletRequest;
  3. import org.aspectj.lang.ProceedingJoinPoint;
  4. import org.aspectj.lang.annotation.Around;
  5. import org.aspectj.lang.annotation.Aspect;
  6. import org.aspectj.lang.annotation.Pointcut;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.web.context.request.RequestAttributes;
  9. import org.springframework.web.context.request.RequestContextHolder;
  10. import org.springframework.web.context.request.ServletRequestAttributes;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;;
  13. // 暂时注释掉,提高系统性能
  14. //@Aspect //定义一个切面
  15. //@Configuration
  16. public class LogRecordAspect {
  17. private static final Logger logger = LoggerFactory.getLogger(LogRecordAspect.class);
  18. // 定义切点Pointcut
  19. @Pointcut("execution(public * org.jeecg.modules.*.*.*Controller.*(..))")
  20. public void excudeService() {
  21. }
  22. @Around("excudeService()")
  23. public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
  24. RequestAttributes ra = RequestContextHolder.getRequestAttributes();
  25. ServletRequestAttributes sra = (ServletRequestAttributes) ra;
  26. HttpServletRequest request = sra.getRequest();
  27. String url = request.getRequestURL().toString();
  28. String method = request.getMethod();
  29. String uri = request.getRequestURI();
  30. String queryString = request.getQueryString();
  31. logger.info("请求开始, 各个参数, url: {}, method: {}, uri: {}, params: {}", url, method, uri, queryString);
  32. // result的值就是被拦截方法的返回值
  33. Object result = pjp.proceed();
  34. logger.info("请求结束,controller的返回值是 " + result);
  35. return result;
  36. }
  37. }