Java SpringBoot&x2013;在Rest方法中添加缓存控制头

Java SpringBoot&x2013;在Rest方法中添加缓存控制头,java,rest,spring-boot,http-headers,resttemplate,Java,Rest,Spring Boot,Http Headers,Resttemplate,我有一个基本的SpringBoot 2.0.5.0版本应用程序。使用Spring初始值设定项、JPA、嵌入式Tomcat、Thymeleaf模板引擎和作为可执行JAR的包 我创建了此Rest方法: @GetMapping(path = "/users/notifications", consumes = "application/json", produces = "application/json") public ResponseEntity<List<UserNot

我有一个基本的SpringBoot 2.0.5.0版本应用程序。使用Spring初始值设定项、JPA、嵌入式Tomcat、Thymeleaf模板引擎和作为可执行JAR的包

我创建了此Rest方法:

  @GetMapping(path = "/users/notifications", consumes = "application/json", produces = "application/json")
    public ResponseEntity<List<UserNotification>> userNotifications(
            @RequestHeader(value = "Authorization") String authHeader) {

        User user = authUserOnPath("/users/notifications", authHeader);

        List<UserNotification> menuAlertNotifications = menuService
                .getLast365DaysNotificationsByUser(user);

        return ResponseEntity.ok(menuAlertNotifications)
                .cacheControl(CacheControl.maxAge(60, TimeUnit.SECONDS));;

    }
@GetMapping(path=“/users/notifications”,consumes=“application/json”,products=“application/json”)
公共响应用户通知(
@RequestHeader(value=“Authorization”)字符串authHeader){
User User=authUserOnPath(“/users/notifications”,authHeader);
列表menuAlertNotifications=MenuUserVice
.getLast365DaysNotificationsByUser(用户);
返回响应正确(菜单提示)
.cacheControl(cacheControl.maxAge(60,TimeUnit.SECONDS));;
}
我想添加一个缓存控制头,但我不知道如何。。。 我得到一个编译错误:

Multiple markers at this line
    - The method cacheControl(CacheControl) is undefined for the type 
     ResponseEntity<List<UserNotification>>
    - CacheControl
    - cacheControl
此行有多个标记
-类型的方法cacheControl(cacheControl)未定义
反应性
-缓存控制
-缓存控制
我还在
application.properties


security.headers.cache=false

当您使用
ResponseEntity.ok(T body)
时,返回类型为
ResponseEntity
,因为它是向
ResponseEntity
的主体部分添加数据的快捷方法

您需要通过
ResponseEntity.ok()
创建的生成器对象,该对象不带返回
builder
对象的参数。然后通过body方法自己添加数据

所以你的代码应该是这样的

  @GetMapping(path = "/users/notifications", consumes = "application/json", produces = "application/json")
    public ResponseEntity<List<UserNotification>> userNotifications(
            @RequestHeader(value = "Authorization") String authHeader) {

        User user = authUserOnPath("/users/notifications", authHeader);

        List<UserNotification> menuAlertNotifications = menuService
                .getLast365DaysNotificationsByUser(user);


        return ResponseEntity.ok().cacheControl(CacheControl.maxAge(60, TimeUnit.SECONDS)).body(menuAlertNotifications);


    }
@GetMapping(path=“/users/notifications”,consumes=“application/json”,products=“application/json”)
公共响应用户通知(
@RequestHeader(value=“Authorization”)字符串authHeader){
User User=authUserOnPath(“/users/notifications”,authHeader);
列表menuAlertNotifications=MenuUserVice
.getLast365DaysNotificationsByUser(用户);
返回ResponseEntity.ok().cacheControl(cacheControl.maxAge(60,TimeUnit.SECONDS)).body(menualernotifications);
}

您使用的是spring security吗?是的,我使用的是spring security