gpt4 book ai didi

java - Spring 如何从返回 CompletableFuture 对象的端点获取结果?

转载 作者:行者123 更新时间:2023-11-29 04:06:17 24 4
gpt4 key购买 nike

在下面的代码中,当端点getPerson被击中,响应将是 Person 类型的 JSON。Spring如何转换CompletableFuture<Person>Person

@RestController
public class PersonController {

@Autowired
private PersonService personService;


@GetMapping("/persons/{personId}" )
public CompletableFuture<Person> getPerson(@PathVariable("personId") Integer personId) {

return CompletableFuture.supplyAsync(() -> personService.getPerson(personId));
}
}

最佳答案

CompletableFuture 返回时,它会触发 Servlet 3.0 异步处理功能,CompletableFuture 的执行将在其他线程中执行,例如处理可以尽快释放 HTTP 请求以处理其他 HTTP 请求。 (详细思路见this开始的一系列博文)

注解在@RestController上的@ResponseBody会导致Spring将 Controller 方法的返回值(即Person)通过一个HttpMessageConverter 内部注册。它的一个实现是 MappingJackson2HttpMessageConverter,它将进一步委托(delegate) Jackson 将 Person 对象序列化为 JSON 字符串,并通过将其写入 HttpServletResponse < 将其发送回 HTTP 客户端/p>

关于java - Spring 如何从返回 CompletableFuture 对象的端点获取结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58505549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com