Spring WebFlux logo

Spring WebFlux

Spring WebFlux is a fully non-blocking, reactive-stack web framework built into Spring Framework 5.0+. It enables building highly scalable, asynchronous web applications using the Reactive Streams API with Project Reactor. WebFlux supports annotated controllers, functional routing endpoints, WebSocket communication, RSocket protocol, and a powerful reactive HTTP client (WebClient) for consuming APIs.

8 APIs 0 Features
JavaMicroservicesNon-Blocking IOReactive ProgrammingREST APISpring BootSpring FrameworkWebFlux

APIs

Spring WebFlux Core

Reactive web framework providing annotated controllers, functional endpoints, dispatcher handler, and the full reactive request/response processing pipeline. Supports non-blocki...

Spring WebFlux WebClient

Reactive, non-blocking HTTP client for consuming REST services and other APIs. Supports builder-based configuration, request/response filters, error handling, streaming, and bri...

Spring WebFlux Router Functions

Functional programming model for routing and request handling in WebFlux. RouterFunction and HandlerFunction provide a lightweight, lambda-based alternative to annotated control...

Spring WebFlux WebSocket

Reactive WebSocket support for full-duplex, bidirectional communication in WebFlux applications. Provides WebSocketHandler, WebSocketSession, and integration with STOMP messagin...

Spring WebFlux RSocket

Integration with RSocket binary protocol for reactive, message-driven communication between microservices. Supports request-response, request-stream, fire-and-forget, and channe...

Reactor Core

Project Reactor is the foundational reactive library powering Spring WebFlux. Provides Mono (0-1 element) and Flux (0-N element) publisher types implementing the Reactive Stream...

Spring WebFlux HTTP Service Client

Declarative HTTP service interface client allowing annotation-based HTTP client definitions with @HttpExchange. Simplifies HTTP client creation with generated proxies backed by ...

Spring WebFlux Testing

Testing support for WebFlux applications including WebTestClient for integration testing of server endpoints, controller tests, and end-to-end testing with a full Spring applica...

Event Specifications

Spring WebFlux WebSocket API

AsyncAPI specification describing WebSocket communication patterns for Spring WebFlux applications. Spring WebFlux provides reactive WebSocket support via WebSocketHandler and W...

ASYNCAPI

Semantic Vocabularies

Webflux Context

0 classes · 24 properties

JSON-LD

Resources

📰
Blog
Blog
💬
Support
Support
🔗
Community
Community
👥
Stack Overflow
Stack Overflow
👥
GitHub Organization
GitHub Organization
🔗
Twitter
Twitter
👥
YouTube
YouTube
🔗
Maven Repository
Maven Repository
📄
Releases
Releases
📄
Changelog
Changelog
🔗
JSONLD
JSONLD
🔗
Vocabulary
Vocabulary

Sources

Raw ↑
aid: webflux
name: Spring WebFlux
description: >-
  Spring WebFlux is a fully non-blocking, reactive-stack web framework built into Spring
  Framework 5.0+. It enables building highly scalable, asynchronous web applications
  using the Reactive Streams API with Project Reactor. WebFlux supports annotated
  controllers, functional routing endpoints, WebSocket communication, RSocket protocol,
  and a powerful reactive HTTP client (WebClient) for consuming APIs.
image: https://spring.io/img/projects/spring-framework.svg
created: '2024-01-01'
modified: '2026-05-03'
specificationVersion: '0.19'
url: >-
  https://raw.githubusercontent.com/api-evangelist/webflux/refs/heads/main/apis.yml
apis:
  - name: Spring WebFlux Core
    description: >-
      Reactive web framework providing annotated controllers, functional endpoints,
      dispatcher handler, and the full reactive request/response processing pipeline.
      Supports non-blocking I/O with Reactor Mono and Flux types.
    image: https://spring.io/img/projects/spring-framework.svg
    humanUrl: https://docs.spring.io/spring-framework/reference/web/webflux.html
    baseUrl: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/reactive/
    tags:
      - Annotated Controllers
      - Dispatcher Handler
      - Functional Endpoints
      - Non-Blocking
      - Reactive
      - Spring Framework
      - WebFlux
    properties:
      - type: Documentation
        url: https://docs.spring.io/spring-framework/reference/web/webflux.html
      - type: API Reference
        url: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/reactive/package-summary.html
      - type: GitHub Repository
        url: https://github.com/spring-projects/spring-framework/tree/main/spring-webflux
      - type: Getting Started
        url: https://spring.io/guides/gs/reactive-rest-service/
      - type: Maven Repository
        url: https://mvnrepository.com/artifact/org.springframework/spring-webflux

  - name: Spring WebFlux WebClient
    description: >-
      Reactive, non-blocking HTTP client for consuming REST services and other APIs.
      Supports builder-based configuration, request/response filters, error handling,
      streaming, and bridging to blocking operations. Replaces the deprecated RestTemplate.
    image: https://spring.io/img/projects/spring-framework.svg
    humanUrl: https://docs.spring.io/spring-framework/reference/web/webflux-webclient.html
    tags:
      - HTTP Client
      - Non-Blocking
      - Reactive
      - REST
      - WebClient
    properties:
      - type: Documentation
        url: https://docs.spring.io/spring-framework/reference/web/webflux-webclient.html
      - type: API Reference
        url: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/reactive/function/client/WebClient.html
      - type: Tutorial
        url: https://www.baeldung.com/spring-5-webclient
      - type: GitHub Repository
        url: https://github.com/spring-projects/spring-framework/tree/main/spring-webflux
      - type: JSONSchema
        url: json-schema/webflux-webclient-request-schema.json
      - type: JSONSchema
        url: json-schema/webflux-webclient-response-schema.json
      - type: JSONStructure
        url: json-structure/webflux-webclient-request-structure.json

  - name: Spring WebFlux Router Functions
    description: >-
      Functional programming model for routing and request handling in WebFlux.
      RouterFunction and HandlerFunction provide a lightweight, lambda-based
      alternative to annotated controllers for defining HTTP endpoints.
    humanUrl: https://docs.spring.io/spring-framework/reference/web/webflux-functional.html
    tags:
      - Functional Programming
      - Handler Functions
      - Reactive
      - Router Functions
      - Routing
    properties:
      - type: Documentation
        url: https://docs.spring.io/spring-framework/reference/web/webflux-functional.html
      - type: Code Examples
        url: https://github.com/spring-projects/spring-framework/tree/main/spring-webflux/src/test/java/org/springframework/web/reactive/function
      - type: JSONSchema
        url: json-schema/webflux-router-function-schema.json

  - name: Spring WebFlux WebSocket
    description: >-
      Reactive WebSocket support for full-duplex, bidirectional communication
      in WebFlux applications. Provides WebSocketHandler, WebSocketSession, and
      integration with STOMP messaging protocol.
    humanUrl: https://docs.spring.io/spring-framework/reference/web/webflux-websocket.html
    tags:
      - Bidirectional
      - Full Duplex
      - Messaging
      - Real-Time
      - WebSocket
    properties:
      - type: Documentation
        url: https://docs.spring.io/spring-framework/reference/web/webflux-websocket.html
      - type: Code Examples
        url: https://spring.io/guides/gs/messaging-stomp-websocket/
      - type: AsyncAPI
        url: asyncapi/webflux-websocket-asyncapi.yml

  - name: Spring WebFlux RSocket
    description: >-
      Integration with RSocket binary protocol for reactive, message-driven
      communication between microservices. Supports request-response,
      request-stream, fire-and-forget, and channel interaction models.
    humanUrl: https://docs.spring.io/spring-framework/reference/rsocket.html
    tags:
      - Binary Protocol
      - Microservices
      - Reactive
      - RSocket
      - Streaming
    properties:
      - type: Documentation
        url: https://docs.spring.io/spring-framework/reference/rsocket.html
      - type: API Reference
        url: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/messaging/rsocket/package-summary.html

  - name: Reactor Core
    description: >-
      Project Reactor is the foundational reactive library powering Spring WebFlux.
      Provides Mono (0-1 element) and Flux (0-N element) publisher types implementing
      the Reactive Streams specification with composable operators.
    humanUrl: https://projectreactor.io/
    baseUrl: https://repo1.maven.org/maven2/io/projectreactor/reactor-core/
    tags:
      - Flux
      - Mono
      - Project Reactor
      - Reactive Streams
      - Reactor
    properties:
      - type: Documentation
        url: https://projectreactor.io/docs/core/release/reference/
      - type: API Reference
        url: https://projectreactor.io/docs/core/release/api/
      - type: GitHub Repository
        url: https://github.com/reactor/reactor-core
      - type: Learning Materials
        url: https://projectreactor.io/learn
      - type: Maven Repository
        url: https://mvnrepository.com/artifact/io.projectreactor/reactor-core

  - name: Spring WebFlux HTTP Service Client
    description: >-
      Declarative HTTP service interface client allowing annotation-based HTTP
      client definitions with @HttpExchange. Simplifies HTTP client creation
      with generated proxies backed by WebClient.
    humanUrl: https://docs.spring.io/spring-framework/reference/integration/rest-clients.html#rest-http-interface
    tags:
      - Declarative
      - HTTP Client
      - HTTP Interface
      - Reactive
      - REST
    properties:
      - type: Documentation
        url: https://docs.spring.io/spring-framework/reference/integration/rest-clients.html#rest-http-interface

  - name: Spring WebFlux Testing
    description: >-
      Testing support for WebFlux applications including WebTestClient for
      integration testing of server endpoints, controller tests, and end-to-end
      testing with a full Spring application context.
    humanUrl: https://docs.spring.io/spring-framework/reference/testing/webtestclient.html
    tags:
      - Integration Testing
      - Reactive Testing
      - Spring Boot Test
      - Testing
      - WebTestClient
    properties:
      - type: Documentation
        url: https://docs.spring.io/spring-framework/reference/testing/webtestclient.html
      - type: API Reference
        url: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/web/reactive/server/WebTestClient.html

common:
  - type: Blog
    url: https://spring.io/blog/category/engineering
  - type: Support
    url: https://spring.io/support
  - type: Community
    url: https://spring.io/community
  - type: Stack Overflow
    url: https://stackoverflow.com/questions/tagged/spring-webflux
  - type: GitHub Organization
    url: https://github.com/spring-projects
  - type: Twitter
    url: https://twitter.com/springcentral
  - type: YouTube
    url: https://www.youtube.com/user/SpringSourceDev
  - type: Maven Repository
    url: https://mvnrepository.com/artifact/org.springframework/spring-webflux
  - type: Releases
    url: https://github.com/spring-projects/spring-framework/releases
  - type: Changelog
    url: https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions
  - type: JSONLD
    url: json-ld/webflux-context.jsonld
  - type: Vocabulary
    url: vocabulary/webflux-vocabulary.yml

maintainers:
  - FN: Kin Lane
    email: [email protected]

tags:
  - Java
  - Microservices
  - Non-Blocking IO
  - Reactive Programming
  - REST API
  - Spring Boot
  - Spring Framework
  - WebFlux