Spring WebFlux - 2

둥그냥·2022년 1월 19일
0

STOVE DEV CAMP

목록 보기
3/5

Annotation vs Functional Programming

server side에서 2가지 방식으로 나누어진다

web-flux모듈의 모델
web-flux모듈의 모델

  • 어노테이션 기반 (@Controller 패턴)
  • 함수형 프로그래밍 기반 (Router Functions 패턴)

모두 reactive stream api, non blocking 방식

자세한 사항 참고
Spring framework 5 webflux 시작하기

Flux와 Mono

  • Reactive Streams 인터페이스 중에서 Publisher 를 구현을 해 놓은 발행자
  • Flux : 0 ~ N개 데이터 전달
    • Reactive Streams의 Publisher를 구현한 N 요소의 스트림을 표현하는 Reactor 클래스
    • 기본적으로 text/plain으로 응답이 반환
      • 아래와 반환할 수도 있다.
      • Server-Sent Event
      • JSON Stream
  • Mono : 0 ~ 1개 데이터 전달
Flux<Integer> ints = Flux.range(1, 3);
ints.subscribe(System.out::println);

Mono<String> mono = Mono.just(str);
mono.subscribe(System.out::println);
  • Mono.just("hello")
    - 말 그대로 "단지"
    • 단지 str 변수만 바라볼거라는 뜻
    • 모든 reactor 객체는 subscribe 메소드를 만나서 "구독"해야만 동작 함

subscribe란?

Spring Webflux 프레임워크 내의 클래스(Internal Class)가 Mono/Flux에 subscribe를 하여 결과값을 HTTP Packet에 넣어준다는 것

0개의 댓글