Java SpringBoot&x2013;在Rest方法中添加缓存控制头
我有一个基本的SpringBoot 2.0.5.0版本应用程序。使用Spring初始值设定项、JPA、嵌入式Tomcat、Thymeleaf模板引擎和作为可执行JAR的包 我创建了此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
@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