在Java中,您可以使用ResponseEntity
对象来设置缓存控制。以下是如何设置缓存控制的示例:
import org.springframework.http.CacheControl; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class CacheControlExample { @GetMapping("/example") public ResponseEntityexample() { // 创建一个缓存控制对象 CacheControl cacheControl = new CacheControl(); // 设置缓存策略 cacheControl.setCacheable(true); // 允许缓存 cacheControl.setEtag("your-etag-value"); // 设置ETag值 cacheControl.setMaxAge(3600); // 设置缓存最大年龄(单位:秒) cacheControl.setNoStore(false); // 是否存储在内存中,设置为false表示存储在内存中 cacheControl.setNoTransform(false); // 是否允许对响应内容进行转换,设置为false表示允许转换 cacheControl.setPrivate(true); // 设置为private,表示响应内容仅客户端可以缓存 // 创建一个HttpHeaders对象,并设置缓存控制头 HttpHeaders headers = new HttpHeaders(); headers.setCacheControl(cacheControl); // 创建一个ResponseEntity对象,并设置状态码和响应头 ResponseEntity responseEntity = new ResponseEntity<>("Hello, this is an example with cache control.", headers, HttpStatus.OK); return responseEntity; } }
在这个示例中,我们创建了一个CacheControl
对象,并设置了缓存策略。然后,我们创建了一个HttpHeaders
对象,并将缓存控制头添加到其中。最后,我们创建了一个ResponseEntity
对象,并将状态码和响应头设置为相应的值。这样,当客户端请求/example
端点时,它将收到带有设置好的缓存控制的响应。