Spring框架的注释@RequestHeader表示应将方法参数绑定到Web请求标头。
我在一个项目中工作,其中许多请求中都使用@RequestHeader
参数,但方法主体中从未使用过参数本身。
示例:
@Secure(requiresToken = TokenType.USER)
@RequestMapping(value = "/hello.htm")
public String hello(@RequestHeader(value="Authorization") String accessToken) {
return "hello";
}
如果方法正文中未使用参数accessToken
,是否真的有必要?
答案 0 :(得分:1)
在处理程序函数顶部使用@RequestHeader
注释不是强制性的。但是,如果使用,则可以在函数中使用相应的值。 “用户代理”,“接受语言”,“ Cookie”是可以使用@RequestHeader
批注访问的一些值。
如果您未在函数中使用该值,则使用该注释将毫无用处。
答案 1 :(得分:0)
我了解到,该参数已被基于AsyncHandlerInterceptor的拦截器所取代,并通过自定义注释@Secure(requiresToken = TokenType.USER)
实现。
通过这种方式,不必传递@RequestHeader
参数。
我们继续传递此参数,以允许swagger在所有请求上描述强制性元素tokenAcces
。