Java

java responseentity如何设置缓存控制

小樊
83
2024-12-03 12:21:16
栏目: 编程语言

在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端点时,它将收到带有设置好的缓存控制的响应。

0
看了该问题的人还看了