public class ReactiveAdapterRegistry extends Object
Publisher
to/from
various async/reactive types such as CompletableFuture
, RxJava
Observable
, and others.
By default, depending on classpath availability, adapters are registered
for Reactor, RxJava 2/3, or RxJava 1 (+ RxJava Reactive Streams bridge),
CompletableFuture
, Java 9+ Flow.Publisher
, and Kotlin
Coroutines' Deferred
and Flow
.
Note: As of Spring Framework 5.3, support for RxJava 1.x is deprecated in favor of RxJava 2 and 3.
Modifier and Type | Class and Description |
---|---|
static class |
ReactiveAdapterRegistry.SpringCoreBlockHoundIntegration
BlockHoundIntegration for spring-core classes. |
Constructor and Description |
---|
ReactiveAdapterRegistry()
Create a registry and auto-register default adapters.
|
Modifier and Type | Method and Description |
---|---|
ReactiveAdapter |
getAdapter(Class<?> reactiveType)
Get the adapter for the given reactive type.
|
ReactiveAdapter |
getAdapter(Class<?> reactiveType,
Object source)
Get the adapter for the given reactive type.
|
static ReactiveAdapterRegistry |
getSharedInstance()
Return a shared default
ReactiveAdapterRegistry instance,
lazily building it once needed. |
boolean |
hasAdapters()
Whether the registry has any adapters.
|
void |
registerReactiveType(ReactiveTypeDescriptor descriptor,
Function<Object,Publisher<?>> toAdapter,
Function<Publisher<?>,Object> fromAdapter)
Register a reactive type along with functions to adapt to and from a
Reactive Streams
Publisher . |
public ReactiveAdapterRegistry()
getSharedInstance()
public boolean hasAdapters()
public void registerReactiveType(ReactiveTypeDescriptor descriptor, Function<Object,Publisher<?>> toAdapter, Function<Publisher<?>,Object> fromAdapter)
@Nullable public ReactiveAdapter getAdapter(Class<?> reactiveType)
null
if none available@Nullable public ReactiveAdapter getAdapter(@Nullable Class<?> reactiveType, @Nullable Object source)
reactiveType
- the reactive type
(may be null
if a concrete source object is given)source
- an instance of the reactive type
(i.e. to adapt from; may be null
if the reactive type is specified)null
if none availablepublic static ReactiveAdapterRegistry getSharedInstance()
ReactiveAdapterRegistry
instance,
lazily building it once needed.
NOTE: We highly recommend passing a long-lived, pre-configured
ReactiveAdapterRegistry
instance for customization purposes.
This accessor is only meant as a fallback for code paths that want to
fall back on a default instance if one isn't provided.
ReactiveAdapterRegistry
instance