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)
使用 @PropertySource
和 PropertySourcesPlaceholderConfigurer
定义属性。
问题是:
"注释属性RequestHeader.value的值必须是a 不断表达。"
但是不可能将值注入常量(最终静态)字段。这有解决方法吗?我想使用RequestHeader
注释/映射和属性文件来定义标题名称。
答案 0 :(得分:2)
注释中使用的值必须在编译时可解析,但param
的值只能在运行时确定
我看到的唯一解决方案是使用HttpServletRequest.getHeader(String)
:
String headerValue = request.getHeader(param);