Spring boot 从反应式spring启动应用程序调用非反应式遗留服务?
我正在大量使用基于webflux的spring boot应用程序。 我面临的问题是,我必须调用一个服务,这是一个传统的spring boot应用程序,不是被动的 下面是一个与所述遗留系统的理念接近的端点示例:Spring boot 从反应式spring启动应用程序调用非反应式遗留服务?,spring-boot,spring-webflux,reactor,Spring Boot,Spring Webflux,Reactor,我正在大量使用基于webflux的spring boot应用程序。 我面临的问题是,我必须调用一个服务,这是一个传统的spring boot应用程序,不是被动的 下面是一个与所述遗留系统的理念接近的端点示例: @RequestMapping(value = "/people/**", method = RequestMethod.GET) public ResponseEntity<InputStreamResource> getPerson(HttpServle
@RequestMapping(value = "/people/**", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> getPerson(HttpServletRequest request) {
String pattern = (String) request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
String key = new AntPathMatcher().extractPathWithinPattern(pattern, request.getRequestURI());
return personService.getPersonByKey(key);
}
@RequestMapping(value=“/people/**”,method=RequestMethod.GET)
公共响应权限getPerson(HttpServletRequest请求){
String pattern=(String)request.getAttribute(HandlerMapping.BEST_MATCHING_pattern_属性);
String key=new AntPathMatcher().extractPathWithinPattern(模式,request.getRequestURI());
返回personService.getPersonByKey(key);
}
我知道我不能用这个来实现真正的反应性善,有没有一个不阻塞和阻塞的快乐媒介我可以在这里实现
感谢当您使用
WebClient
从Spring WebFlux应用程序调用服务时,它将以反应式非阻塞方式工作。这意味着您可以在应用程序上实现真正的反应性优点。在上游服务返回响应之前,线程不会被阻塞
下面是使用WebClient调用服务的示例代码:
WebClient webClient = WebClient.create("http://localhost:8080");
Mono<Person> result = webClient.get()
.uri("/people/{id}")
.retrieve()
.bodyToMono(Person.class);
WebClient-WebClient=WebClient.create(“http://localhost:8080");
Mono result=webClient.get()
.uri(“/people/{id}”)
.retrieve()
.bodyToMono(个人、班级);
当您使用WebClient
从Spring WebFlux应用程序调用服务时,它将以反应式非阻塞方式工作。这意味着您可以在应用程序上实现真正的反应性优点。在上游服务返回响应之前,线程不会被阻塞
下面是使用WebClient调用服务的示例代码:
WebClient webClient = WebClient.create("http://localhost:8080");
Mono<Person> result = webClient.get()
.uri("/people/{id}")
.retrieve()
.bodyToMono(Person.class);
WebClient-WebClient=WebClient.create(“http://localhost:8080");
Mono result=webClient.get()
.uri(“/people/{id}”)
.retrieve()
.bodyToMono(个人、班级);
如果您在WebFlux应用程序中使用WebClient调用传统的spring boot应用程序,您应该不会有问题。WebClient以一种不阻塞的方式实现,在调用传统的SpringMVC应用程序时也是如此。阅读更多信息:如果您在WebFlux应用程序中使用WebClient调用传统的spring boot应用程序,您应该不会有问题。WebClient以一种不阻塞的方式实现,在调用传统的SpringMVC应用程序时也是如此。阅读更多: