Spring Web Reactive | 1. Spring WebFlux

Version 5.3.5

이 문서에서는 Netty, Undertow, Servlet 3.1+ 컨테이너 등의 non-blocking 서버에서 실행하는 Reactive Streams API에 구축 된 리엑티브 스택 Web 어플리케이션의 지원에 대해 설명한다. 각 장에서는 Spring WebFlux 프레임워크, 리액티브 WebClient, 테스트 지원 및 reactive libraries에 대해 설명한다. 서블릿 스택 Web 어플리케이션은 Web on Servlet Stack을 참조하라.

1. Spring WebFlux

Spring Framework에 포함되어 있는 원래의 Web 프레임워크인 Spring Web MVC는 서블릿 API와 서블릿 컨테이너 전용으로 구축되었다. 리액티브 스택 Web 프레임워크인 Spring WebFlux는 이후 5.0 버전에 추가되었다. 완전히 비차단(non-blocking)을 지원하는 Reactive Streams 역 압력(back pressure)를 지원하고 Netty, Undertow, Servlet 3.1+ 컨테이너 등의 서버에서 실행된다.

두 개의 Web 프레임워크는 소스 모듈(spring-webmvc 그리고 spring-webflux)의 이름을 미러링하고, Spring Framework에 공존한다. 각 모듈은 옵션이다. 응용 프로그램은 어느 한쪽의 모듈 또는 경우에 따라서는 모두 사용할 수 있다. 예를 들어, Spring MVC 컨트롤러에 리액티브 WebClient를 포함하는 식이다.