Java 如何在Spring控制器中注入缓存控制最大年龄头?

Java 如何在Spring控制器中注入缓存控制最大年龄头?,java,spring,spring-mvc,http-headers,Java,Spring,Spring Mvc,Http Headers,我在Spring控制器中有以下方法: public Response myMethod (@PathVariable("id") String id, @RequestParam(required = false) Map<String, Object> queryString, @RequestHeader(value = HttpHeaders.ACCEPT, required = false) String acceptHeader,

我在Spring控制器中有以下方法:

public Response myMethod (@PathVariable("id") String id,
        @RequestParam(required = false) Map<String, Object> queryString,
        @RequestHeader(value = HttpHeaders.ACCEPT, required = false) String acceptHeader,
        @RequestHeader(value = HttpHeaders.CACHE_CONTROL, required = false, defaultValue = 1) String expiration,
        @RequestHeader(value = HttpHeaders.FROM) String appId) {
// ...
}
公共响应myMethod(@PathVariable(“id”)字符串id,
@RequestParam(必需=false)映射查询字符串,
@RequestHeader(value=HttpHeaders.ACCEPT,required=false)字符串acceptHeader,
@RequestHeader(value=HttpHeaders.CACHE_控件,required=false,defaultValue=1)字符串过期,
@RequestHeader(值=HttpHeaders.FROM)字符串appId){
// ...
}
在这里,我使用
@RequestHeader
提取整个缓存控制头。有没有办法只通过注入或使用专用Spring类进一步解析来获取
max age
部分?还是我必须手动操作


谢谢

您可能可以定义一个类,例如:
CacheControlMaxAge
,然后是一个
转换器
,最后将您的参数声明为 a
CacheControlMaxAge

@Getter
@RequiredArgsConstructor
public class CacheControlMaxAge {
  private final int maxAge;
}

@Component
public class CacheControlMaxAgeConverter implements Converter<HttpRequest, CacheControlMaxAge> {

  public CacheControlMaxAge convert(HttpRequest request) {
    // todo: extract stuff from request
    return new CacheControlMaxAge(...);
  }
}

public Response blah(..., CacheControlMaxAge cacheControl) { ... }
@Getter
@所需参数构造函数
公共类CacheControlMaxAge{
私人最终整数最大值;
}
@组成部分
公共类CacheControlMaxAgeConverter实现转换器{
公共CacheControlMaxAge转换(HttpRequest请求){
//todo:从请求中提取内容
返回新的CacheControlMaxAge(…);
}
}
公共响应blah(…,CacheControlMaxAge cacheControl){…}

是的,我知道了,但在构建自己的解决方案之前,我想检查一下是否有现成的解决方案。我不知道Spring(或Boot)中有什么专门处理这个问题的方法。可能已经存在更好的表示形式,例如
org.springframework.http.CacheControl
,但我没有看到任何具体的方法可以将其用作参数(例如:我刚才查看时没有发现转换器)