使用@RequestHeader(“ Authorization”)参数,而不在方法主体中使用它吗?

时间:2018-12-07 09:00:46

标签: java spring

Spring框架的注释@RequestHeader表示应将方法参数绑定到Web请求标头。

我在一个项目中工作,其中许多请求中都使用@RequestHeader参数,但方法主体中从未使用过参数本身。

示例:

@Secure(requiresToken = TokenType.USER)
@RequestMapping(value = "/hello.htm")
public String hello(@RequestHeader(value="Authorization") String accessToken) {
    return "hello";
}

如果方法正文中未使用参数accessToken,是否真的有必要?

2 个答案:

答案 0 :(得分:1)

在处理程序函数顶部使用@RequestHeader注释不是强制性的。但是,如果使用,则可以在函数中使用相应的值。 “用户代理”,“接受语言”,“ Cookie”是可以使用@RequestHeader批注访问的一些值。

如果您未在函数中使用该值,则使用该注释将毫无用处。

答案 1 :(得分:0)

我了解到,该参数已被基于AsyncHandlerInterceptor的拦截器所取代,并通过自定义注释@Secure(requiresToken = TokenType.USER)实现。

通过这种方式,不必传递@RequestHeader参数。

我们继续传递此参数,以允许swagger在所有请求上描述强制性元素tokenAcces

例如:enter image description here