Top Description Fields Constructors Methods
org.springframework.messaging.handler.invocation.reactive

public Class InvocableHandlerMethod

extends HandlerMethod
Class Inheritance
Imports
java.lang.reflect.InvocationTargetException, .Method, .ParameterizedType, .Type, java.util.ArrayList, .List, java.util.stream.Stream, reactor.core.publisher.Mono, org.springframework.core.CoroutinesUtils, .DefaultParameterNameDiscoverer, .KotlinDetector, .MethodParameter, .ParameterNameDiscoverer, .ReactiveAdapter, .ReactiveAdapterRegistry, org.springframework.lang.Nullable, org.springframework.messaging.Message, org.springframework.messaging.handler.HandlerMethod, org.springframework.messaging.handler.invocation.MethodArgumentResolutionException, org.springframework.util.ObjectUtils

Extension of HandlerMethod that invokes the underlying method with argument values resolved from the current HTTP request through a list of HandlerMethodArgumentResolver.
Author
Rossen Stoyanchev
Since
5.2

Field Summary

Modifier and TypeField and Description
private static final Mono<Object[]>
private static final Object
private ParameterNameDiscoverer
private ReactiveAdapterRegistry
private final HandlerMethodArgumentResolverComposite
Inherited from org.springframework.messaging.handler.HandlerMethod:
defaultLoggerlogger

Constructor Summary

AccessConstructor and Description
public
InvocableHandlerMethod(HandlerMethod handlerMethod)

Create an instance from a HandlerMethod.

public
InvocableHandlerMethod(Object bean, Method method)

Create an instance from a bean instance and a method.

Method Summary

Modifier and TypeMethod and Description
private Mono<Object[]>
getMethodArgumentValues(Message<?> message, Object... providedArgs)

public ParameterNameDiscoverer
getParameterNameDiscoverer()

Return the configured parameter name discoverer.

public List<HandlerMethodArgumentResolver>
getResolvers()

Return the configured argument resolvers.

public Mono<Object>

Returns:

a Mono with the result from the invocation
invoke
(Message<?>
the current message
message
,
Object...
optional list of argument values to match by type
providedArgs
)

Invoke the method for the given exchange.

private boolean
private void
public void
setArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers)

Configure the argument resolvers to use for resolving method argument values against a ServerWebExchange.

public void
setParameterNameDiscoverer(ParameterNameDiscoverer nameDiscoverer)

Set the ParameterNameDiscoverer for resolving parameter names when needed (e.g. default request attribute name).

public void
setReactiveAdapterRegistry(ReactiveAdapterRegistry registry)

Configure a reactive adapter registry.

Inherited from org.springframework.messaging.handler.HandlerMethod:
assertTargetBeancreateWithResolvedBeanequalsformatInvokeErrorgetBeangetBeanTypegetContainingClassgetLoggergetResolvedFromHandlerMethodgetShortLogMessagehashCodesetLogger

Field Detail

EMPTY_ARGSback to summary
private static final Mono<Object[]> EMPTY_ARGS
NO_ARG_VALUEback to summary
private static final Object NO_ARG_VALUE
parameterNameDiscovererback to summary
private ParameterNameDiscoverer parameterNameDiscoverer
reactiveAdapterRegistryback to summary
private ReactiveAdapterRegistry reactiveAdapterRegistry
resolversback to summary
private final HandlerMethodArgumentResolverComposite resolvers

Constructor Detail

InvocableHandlerMethodback to summary
public InvocableHandlerMethod(HandlerMethod handlerMethod)

Create an instance from a HandlerMethod.

InvocableHandlerMethodback to summary
public InvocableHandlerMethod(Object bean, Method method)

Create an instance from a bean instance and a method.

Method Detail

getMethodArgumentValuesback to summary
private Mono<Object[]> getMethodArgumentValues(Message<?> message, Object... providedArgs)
getParameterNameDiscovererback to summary
public ParameterNameDiscoverer getParameterNameDiscoverer()

Return the configured parameter name discoverer.

getResolversback to summary
public List<HandlerMethodArgumentResolver> getResolvers()

Return the configured argument resolvers.

invokeback to summary
public Mono<Object> invoke(Message<?> message, Object... providedArgs)

Invoke the method for the given exchange.

Parameters
message:Message<?>

the current message

providedArgs:Object[]

optional list of argument values to match by type

Returns:Mono<Object>

a Mono with the result from the invocation

Annotations
@SuppressWarnings:KotlinInternalInJava
isAsyncVoidReturnTypeback to summary
private boolean isAsyncVoidReturnType(MethodParameter returnType, ReactiveAdapter reactiveAdapter)
logArgumentErrorIfNecessaryback to summary
private void logArgumentErrorIfNecessary(MethodParameter parameter, Throwable ex)
setArgumentResolversback to summary
public void setArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers)

Configure the argument resolvers to use for resolving method argument values against a ServerWebExchange.

setParameterNameDiscovererback to summary
public void setParameterNameDiscoverer(ParameterNameDiscoverer nameDiscoverer)

Set the ParameterNameDiscoverer for resolving parameter names when needed (e.g. default request attribute name).

Default is a DefaultParameterNameDiscoverer.

setReactiveAdapterRegistryback to summary
public void setReactiveAdapterRegistry(ReactiveAdapterRegistry registry)

Configure a reactive adapter registry. This is needed for async return values.

By default this is a ReactiveAdapterRegistry with default settings.