Spring - 为请求标头名称注入值

Faz*_*zoM 5 java spring spring-mvc

Spring 和将请求标头名称值注入控制器存在问题。
这是代码:

@Controller
public class ApiController {

    @Value("${param.header_name}")
    private String param;

    @RequestMapping(value = "/**")
    public void handleApiRequest(final HttpServletRequest request, final HttpServletResponse response,
        @RequestHeader(value = param) final String param)
Run Code Online (Sandbox Code Playgroud)

属性是使用@PropertySource和定义的PropertySourcesPlaceholderConfigurer

问题是:

“注释属性 RequestHeader.value 的值必须是常量表达式。”

但不可能将值注入常量(最终静态)字段。有解决方法吗?我想使用RequestHeader注释/映射和属性文件来定义标头名称。

sp0*_*00m 4

注解中使用的值必须在编译时可解析,但param的值只能在运行时确定

我看到的唯一解决方案是使用HttpServletRequest.getHeader(String)

String headerValue = request.getHeader(param);
Run Code Online (Sandbox Code Playgroud)