经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » 设计模式 » 查看文章
(入门SpringBoot)SpringBoot加接口操作日志好方法(九)
来源:cnblogs  作者:六一儿童节  时间:2019/5/28 9:31:39  对本文有异议
  1. Spring的切面去做,慕课网上的大神的小妙招,被我拷贝下来了。
    import org.aspectj.lang.JoinPoint;
  2. import org.aspectj.lang.annotation.*;
  3. import org.springframework.stereotype.Component;
  4. import org.springframework.util.StringUtils;
  5. import org.springframework.web.context.request.RequestContextHolder;
  6. import org.springframework.web.context.request.ServletRequestAttributes;
  7. import javax.servlet.http.HttpServletRequest;
  8. /**
  9. * 作用实现拦截http请求.
  10. */
  11. @Aspect
  12. @Component //把这个文件引入到Spring容器里面去.
  13. public class HttpAspect {
  14. @Pointcut("execution(public * com.account.demo.controller.*.*(..))")
  15. public void log(){
  16. }
  17. /**
  18. * 拦截那些方法.请求前.
  19. * JoinPoint 获取类方法和类名对象.
  20. */
  21. @Before("log()")
  22. public void logBefore(JoinPoint joinPoint){
  23. System.out.println("拦截了getInfo方法");
  24. //url,method,ip,类方法,参数.
  25. //SpringBoot通过RequestContextHolder获取HttpRequest和HttpResponse
  26. ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
  27. //javax.servlet.http.HttpServletRequest
  28. HttpServletRequest request = attributes.getRequest();
  29. System.out.println("url"+request.getRequestURL());
  30. System.out.println("method"+request.getMethod());
  31. System.out.println("ip"+request.getRemoteAddr());
  32. //类方法.
  33. System.out.println("类方法"+joinPoint.getSignature().getDeclaringTypeName()
  34. +"."+ joinPoint.getSignature().getName()
  35. );
  36. //参数:
  37. System.out.println("类方法"+joinPoint.getArgs());
  38. }
  39. /**
  40. * 拦截那些方法.请求后.
  41. */
  42. @After("log()")
  43. public void logAfter(){
  44. System.out.println("拦截了getInfo方法.之后");
  45. }
  46. /**
  47. * 返回参数.
  48. * @param object 入参
  49. */
  50. @AfterReturning(returning = "object",pointcut = "log()")
  51. public void doAfterReturning(Object object){
  52. System.out.println(object);
  53. }
  54. }

 

原文链接:http://www.cnblogs.com/historylyt/p/10933953.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号