【问题标题】:Is there a way to access Spring controller parameters outside of the controller class?有没有办法在控制器类之外访问 Spring 控制器参数?
【发布时间】:2019-12-04 06:19:58
【问题描述】:

我有 Spring acpect,它围绕我的应用程序中的每个控制器方法触发。在方面的主体中,我想访问在方法签名中声明的所有请求参数。有没有一种简单的方法可以避免反射?

【问题讨论】:

标签: java spring spring-mvc


【解决方案1】:

你可以试试Around Advice

@Around("yourMethods()")
    public Object someOperation(ProceedingJoinPoint pjp) throws Throwable {
        long start = System.nanoTime();
        Object retval = pjp.proceed();
        long end = System.nanoTime();
        String methodName = pjp.getSignature().getName();
        logger.info("Execution of " + methodName + " took " + 
          TimeUnit.NANOSECONDS.toMillis(end - start) + " ms");
        return retval;
    }

这里 ProceedingJoinPoint 将包含所有参数,因此您可以使用它们并且不要忘记返回对象,否则程序将中断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多