在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 ResponseEntity<String> example() {
// 创建一个缓存控制对象
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<String> responseEntity = new ResponseEntity<>("Hello, this is an example with cache control.", headers, HttpStatus.OK);
return responseEntity;
}
}
在这个示例中,我们创建了一个CacheControl
对象,并设置了缓存策略。然后,我们创建了一个HttpHeaders
对象,并将缓存控制头添加到其中。最后,我们创建了一个ResponseEntity
对象,并将状态码和响应头设置为相应的值。这样,当客户端请求/example
端点时,它将收到带有设置好的缓存控制的响应。