728x90
반응형
Flux와 Mono
Spring WebFlux의 Flux와 Mono는 반응형 프로그래밍 모델의 두 가지 주요 구성 요소입니다.
Mono
Mono는 0 또는 1개의 요소를 비동기적으로 제공하는 Publisher입니다. 단일 값 또는 빈 값의 비동기 처리를 나타냅니다.
Mono<String> mono = Mono.just("Hello, Mono!");
mono.subscribe(System.out::println);
Flux
Flux는 0개 이상의 요소를 비동기적으로 제공하는 Publisher입니다. 여러 값의 스트림을 처리할 때 사용됩니다.
Flux<String> flux = Flux.just("Hello", "Flux", "World!");
flux.subscribe(System.out::println);
예제 코드
Mono 예제
Mono<String> monoExample = Mono.just("Single Value");
monoExample.subscribe(System.out::println);
Flux 예제
Flux<String> fluxExample = Flux.just("Value 1", "Value 2", "Value 3");
fluxExample.subscribe(System.out::println);
주요 차이점
두 가지 모두 비동기 및 반응형 프로그래밍을 지원하여 효율적인 리소스 사용과 높은 성능을 제공합니다.
- Mono
- 단일 값 또는 빈 값 처리
- Flux
- 다중 값 스트림 처리
WebClient와 함께 사용
public Mono<String> fetchData() {
return webClient.get()
.uri("/endpoint")
.retrieve()
.bodyToMono(String.class);
}
public Flux<String> fetchAllData() {
return webClient.get()
.uri("/all-data")
.retrieve()
.bodyToFlux(String.class);
}
728x90
반응형
'개발중 > Spring Boot' 카테고리의 다른 글
ApplicationListener 를 이용해서 어플리케이션 기동시 에러날 경우에 대처하기. (0) | 2024.09.19 |
---|---|
Spring Boot 3와 WebClient: 비동기식 HTTP 요청을 쉽게 구현하기 (0) | 2024.06.11 |