发布时间:2025-12-10 23:53:52 浏览次数:12
//AOP切面:多个切面时,@Order(i)注解来标识切面的优先级。i的值越小,优先级越高@Order(5)@Aspect@ComponentpublicclassSysAspect{@Pointcut("execution(public*com.zypcy.expend.controller.*.*(..))")publicvoidlog(){}privatestaticfinalorg.slf4j.Loggerlogger=LoggerFactory.getLogger(SysAspect.class);//统计请求的处理时间ThreadLocal<Long>startTime=newThreadLocal<>();@Before("log()")publicvoiddoBefore(JoinPointjoinPoint)throwsThrowable{startTime.set(System.currentTimeMillis());//接收到请求,记录请求内容ServletRequestAttributesattributes=(ServletRequestAttributes)RequestContextHolder.getRequestAttributes();HttpServletRequestrequest=attributes.getRequest();//记录请求的内容System.out.println("Aspect_URL:"+request.getRequestURL().toString());System.out.println("Aspect_Method:"+request.getMethod());}@AfterReturning(returning="ret",pointcut="log()")publicvoiddoAfterReturning(Objectret){//处理完请求后,返回内容System.out.println("方法返回值:"+JSON.toJSONString(ret)+",方法执行时间:"+(System.currentTimeMillis()-startTime.get()));}}看完上述内容,你们掌握spring中AOP怎么使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注本站行业资讯频道,感谢各位的阅读!