On this page
Reactor
Micronaut Reactor adds support for Project Reactor to a Micronaut 2.x application. If you are using Micronaut 1.x you do not need this module.
-
Converters for Reactor types so that Reactor types can be used in controllers and clients
-
Instrumentation for Reactor types so that tracing works with Reactor types
-
A version of the Http client that supports Reactor
For this project, you can find a list of releases (with release notes) here:
5.0.0
RxJava 2 Support Removed
Micronaut Reactor no longer supports RxJava 2. The RxJava 2 dependency has been removed and RxJava 3 are supported because Micronaut 5 drops RxJava 2 support.
If your application uses RxJava with this module, update imports from io.reactivex. to io.reactivex.rxjava3.
and depend on io.reactivex.rxjava3:rxjava instead of io.reactivex.rxjava2:rxjava.
3.0.0
Reactor Http Client
The Reactor Http client has changed to return Mono<HttpResponse<O>> instead of Flux<HttpResponse<O>>.
This is semantically more correct as there can only be a single response per request.
Add the following dependency to your Micronaut application:
implementation("io.micronaut.reactor:micronaut-reactor")To use the HTTP client add the following dependency:
implementation("io.micronaut.reactor:micronaut-reactor-http-client")To use the Reactor variation of the Micronaut HTTP client inject the ReactorHttpClient interface (or one the other variants). For example:
import io.micronaut.reactor.http.client.*;
@Inject ReactorHttpClient httpClient; // regular client
@Inject ReactorSseClient sseClient; // server sent events
@Inject ReactorStreamingHttpClient streamingClient; // streamingWhen using Micronaut Reactor within a reactive chain, add the following dependency to handle the Reactor Context Propagation.
implementation("io.micrometer:context-propagation")You can find the source code of this project in this repository: