千家信息网

spring中AOP怎么使用

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,spring中AOP怎么使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。//AOP切面 :多个切面时,@Order(i)注解来标识切面
千家信息网最后更新 2024年11月19日spring中AOP怎么使用

spring中AOP怎么使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

//AOP切面 :多个切面时,@Order(i)注解来标识切面的优先级。i的值越小,优先级越高@Order(5)@Aspect@Componentpublic class SysAspect {    @Pointcut("execution(public * com.zypcy.expend.controller.*.*(..))")    public void log(){}    private static final org.slf4j.Logger logger = LoggerFactory.getLogger(SysAspect.class);    //统计请求的处理时间    ThreadLocal startTime = new ThreadLocal<>();    @Before("log()")    public void doBefore(JoinPoint joinPoint) throws Throwable{        startTime.set(System.currentTimeMillis());        //接收到请求,记录请求内容        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();        HttpServletRequest request = attributes.getRequest();        //记录请求的内容        System.out.println("Aspect_URL:"+request.getRequestURL().toString());        System.out.println("Aspect_Method:"+request.getMethod());    }    @AfterReturning(returning = "ret" , pointcut = "log()")    public void doAfterReturning(Object ret){        //处理完请求后,返回内容        System.out.println("方法返回值:"+ JSON.toJSONString(ret) +",方法执行时间:"+ (System.currentTimeMillis() - startTime.get()));    }}

看完上述内容,你们掌握spring中AOP怎么使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0