[SPRING] Spring 5 Web Reactive - WebClient를 사용하여 Flux에서 스트리밍 된 데이터를 검색하려면 어떻게해야합니까?
SPRINGSpring 5 Web Reactive - WebClient를 사용하여 Flux에서 스트리밍 된 데이터를 검색하려면 어떻게해야합니까?
현재 Milestone (M4) 설명서에는 WebClient를 사용하여 Mono를 검색하는 방법과 예제가 나와 있습니다.
WebClient webClient = WebClient.create(new ReactorClientHttpConnector());
ClientRequest<Void> request = ClientRequest.GET("http://example.com/accounts/{id}", 1L)
.accept(MediaType.APPLICATION_JSON).build();
Mono<Account> account = this.webClient
.exchange(request)
.then(response -> response.body(toMono(Account.class)));
WebClient를 사용하여 Flux로 스트리밍 된 데이터 (텍스트 / 이벤트 스트림을 반환하는 서비스)를 어떻게 얻을 수 있습니까? 자동 잭슨 변환을 지원합니까?
이것은 이전의 이정표에서 내가 한 일이지만 API가 변경되어 더 이상 그것을 할 수 없다.
final ClientRequest<Void> request = ClientRequest.GET(url)
.accept(MediaType.TEXT_EVENT_STREAM).build();
Flux<Alert> response = webClient.retrieveFlux(request, Alert.class)
해결법
-
==============================
1.새로운 API를 사용하면 다음과 같은 이점을 얻을 수 있습니다.
새로운 API를 사용하면 다음과 같은 이점을 얻을 수 있습니다.
final ClientRequest request = ClientRequest.GET(url) .accept(MediaType.TEXT_EVENT_STREAM).build(); Flux<Alert> alerts = webClient.exchange(request) .retrieve().bodyToFlux(Alert.class);
-
==============================
2.Spring 5.0.0.RELEASE를 사용하면 다음과 같이 할 수있다.
Spring 5.0.0.RELEASE를 사용하면 다음과 같이 할 수있다.
public Flux<Alert> getAccountAlerts(int accountId){ String url = serviceBaseUrl+"/accounts/{accountId}/alerts"; Flux<Alert> alerts = webClient.get() .uri(url, accountId) .accept(MediaType.APPLICATION_JSON) .retrieve() .bodyToFlux( Alert.class ) .log(); return alerts; }
from https://stackoverflow.com/questions/41396430/spring-5-web-reactive-how-can-we-use-webclient-to-retrieve-streamed-data-in-a by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 3.x - @Async 메서드는 작업 실행자에 의해 동시에 호출되지 않습니다. (0) | 2019.02.25 |
---|---|
[SPRING] crudrepository findBy 메소드 튜플리스트의 서명 (0) | 2019.02.25 |
[SPRING] spring mvc 프로젝트를 실행하는 중에 오류가 발생했습니다. (0) | 2019.02.25 |
[SPRING] 기본 AOP 프로그램이 BeanCurrentlyInCreationException을 발생시킵니다. (0) | 2019.02.25 |
[SPRING] Grails에서 컨트롤러 액션간에 객체를 전달하는 가장 좋은 방법 (0) | 2019.02.25 |