SpringBoot3 流式响应
时间: 2023-08-23 11:10:26 浏览: 179
SpringBoot Web请求响应案例
Spring Boot 3 中的流式响应指的是通过流的方式逐个返回数据给客户端,而不是一次性返回所有数据。这种方式可以提高响应速度和减少内存占用。
在 Spring Boot 3 中,可以使用 `StreamingResponseBody` 接口来实现流式响应。该接口的实现类需要实现 `writeTo` 方法,该方法接收一个输出流,将数据逐个写入输出流。客户端可以使用流的方式读取响应数据。
以下是一个使用 `StreamingResponseBody` 实现流式响应的示例:
```java
@GetMapping("/stream")
public StreamingResponseBody stream() {
return outputStream -> {
for (int i = 0; i < 10; i++) {
outputStream.write(("message " + i + "\n").getBytes());
outputStream.flush();
Thread.sleep(1000);
}
};
}
```
在上面的示例中,`stream` 方法返回一个 `StreamingResponseBody` 对象,该对象的 `writeTo` 方法将会逐个输出 10 条消息,每条消息间隔 1 秒。客户端可以使用流的方式读取响应数据。
需要注意的是,使用流式响应时需要手动刷新输出流,否则客户端可能无法收到数据。此外,流式响应也不能使用 HTTP 缓存。
阅读全文