【发布时间】:2014-08-27 13:57:12
【问题描述】:
我正在使用 Spring MVC 开发一个 REST Web 服务,并且我已经实现了一个自定义注解,以便用它来注解控制器方法。此注释可能包含一个 SpEL 表达式,我必须考虑控制器方法参数值来评估它。所以,我的想法是为此实现一个 Spring MVC 拦截器,但 preHandle 方法中的参数 HandlerMethod 只是一种识别方法的方法,不提供对控制器方法参数值的访问。所以,我能想到的唯一方法是开发一个 Spring AOP 方面并拦截对带注释的方法的所有调用。顺便说一句,我需要访问请求,所以如果我使用 AOP 方式,所有带注释的方法都应该在请求中包含一个参数。
所以,我的问题是:有什么方法可以从 Spring MVC 拦截器访问方法参数值,还是应该采用 Spring AOP 方式?
提前致谢。
【问题讨论】:
-
我可能误解了您要做什么,但
HandlerMethod.getMethodParameters()没有返回您需要的信息吗? -
@geoand from MethodParameter javadoc "封装方法参数规范的帮助类"
-
你的意思是你需要传递给方法的实际参数?
-
是的,以便与他们一起评估可能的 SpEL 表达式。
-
恐怕我对此没有任何建议。你能解释一下为什么你需要在拦截器中评估 SpEL 吗?你想达到什么目的?
标签: java spring spring-mvc