Top Description Constructors Methods
org.springframework.web.reactive.result.method.annotation

public abstract Class AbstractNamedValueSyncArgumentResolver

extends AbstractNamedValueArgumentResolver
implements SyncHandlerMethodArgumentResolver
Class Inheritance
All Implemented Interfaces
org.springframework.web.reactive.result.method.SyncHandlerMethodArgumentResolver, org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver
Known Direct Subclasses
org.springframework.web.reactive.result.method.annotation.CookieValueMethodArgumentResolver, org.springframework.web.reactive.result.method.annotation.ExpressionValueMethodArgumentResolver, org.springframework.web.reactive.result.method.annotation.MatrixVariableMethodArgumentResolver, org.springframework.web.reactive.result.method.annotation.PathVariableMethodArgumentResolver, org.springframework.web.reactive.result.method.annotation.RequestAttributeMethodArgumentResolver, org.springframework.web.reactive.result.method.annotation.RequestHeaderMethodArgumentResolver, org.springframework.web.reactive.result.method.annotation.RequestParamMethodArgumentResolver
Imports
reactor.core.publisher.Mono, org.springframework.beans.factory.config.ConfigurableBeanFactory, org.springframework.core.MethodParameter, .ReactiveAdapterRegistry, org.springframework.lang.Nullable, org.springframework.web.reactive.BindingContext, org.springframework.web.reactive.result.method.SyncHandlerMethodArgumentResolver, org.springframework.web.server.ServerWebExchange

An extension of AbstractNamedValueArgumentResolver for named value resolvers that are synchronous and yet non-blocking. Subclasses implement the synchronous resolveNamedValue to which the asynchronous resolveName delegates to by default.
Author
Rossen Stoyanchev
Since
5.0

Constructor Summary

AccessConstructor and Description
protected
AbstractNamedValueSyncArgumentResolver(ConfigurableBeanFactory
a bean factory to use for resolving ${...} placeholder and #{...} SpEL expressions in default values; or null if default values are not expected to have expressions
factory
,
ReactiveAdapterRegistry
for checking reactive type wrappers
registry
)

Create a new AbstractNamedValueSyncArgumentResolver.

Method Summary

Modifier and TypeMethod and Description
public Mono<Object>
public Object
resolveArgumentValue(MethodParameter
the method parameter
parameter
,
BindingContext
the binding context to use
context
,
ServerWebExchange
the current exchange
exchange
)

Implements org.springframework.web.reactive.result.method.SyncHandlerMethodArgumentResolver.resolveArgumentValue.

Resolve the value for the method parameter synchronously.

protected final Mono<Object>
resolveName(String
the name of the value being resolved
name
,
MethodParameter
the method parameter to resolve to an argument value (pre-nested in case of a java.util.Optional declaration)
param
,
ServerWebExchange
the current exchange
exchange
)

Implements abstract org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver.resolveName.

Resolve the given parameter type and value name into an argument value.

protected abstract Object
resolveNamedValue(String name, MethodParameter param, ServerWebExchange exchange)

Actually resolve the value synchronously.

Inherited from org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver:
createNamedValueInfohandleMissingValuehandleMissingValuehandleResolvedValue

Constructor Detail

AbstractNamedValueSyncArgumentResolverback to summary
protected AbstractNamedValueSyncArgumentResolver(ConfigurableBeanFactory factory, ReactiveAdapterRegistry registry)

Create a new AbstractNamedValueSyncArgumentResolver.

Parameters
factory:ConfigurableBeanFactory

a bean factory to use for resolving ${...} placeholder and #{...} SpEL expressions in default values; or null if default values are not expected to have expressions

registry:ReactiveAdapterRegistry

for checking reactive type wrappers

Method Detail

resolveArgumentback to summary
public Mono<Object> resolveArgument(MethodParameter parameter, BindingContext bindingContext, ServerWebExchange exchange)

Overrides org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver.resolveArgument.

Overrides default org.springframework.web.reactive.result.method.SyncHandlerMethodArgumentResolver.resolveArgument.

Implements org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver.resolveArgument.

Doc from org.springframework.web.reactive.result.method.SyncHandlerMethodArgumentResolver.resolveArgument.

Resolve the value for the method parameter.

By default this simply delegates to resolveArgumentValue for synchronous resolution.

Parameters
parameter:MethodParameter

Doc from org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver.resolveArgument.

the method parameter

bindingContext:BindingContext

Doc from org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver.resolveArgument.

the binding context to use

exchange:ServerWebExchange

Doc from org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver.resolveArgument.

the current exchange

Returns:Mono<Object>

Doc from org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver.resolveArgument.

Mono for the argument value, possibly empty

Annotations
@Override
resolveArgumentValueback to summary
public Object resolveArgumentValue(MethodParameter parameter, BindingContext context, ServerWebExchange exchange)

Implements org.springframework.web.reactive.result.method.SyncHandlerMethodArgumentResolver.resolveArgumentValue.

Doc from org.springframework.web.reactive.result.method.SyncHandlerMethodArgumentResolver.resolveArgumentValue.

Resolve the value for the method parameter synchronously.

Parameters
parameter:MethodParameter

the method parameter

context:BindingContext

the binding context to use

exchange:ServerWebExchange

the current exchange

Returns:Object

the resolved value, if any

Annotations
@Override
resolveNameback to summary
protected final Mono<Object> resolveName(String name, MethodParameter param, ServerWebExchange exchange)

Implements abstract org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver.resolveName.

Doc from org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver.resolveName.

Resolve the given parameter type and value name into an argument value.

Parameters
name:String

the name of the value being resolved

param:MethodParameter

the method parameter to resolve to an argument value (pre-nested in case of a java.util.Optional declaration)

exchange:ServerWebExchange

the current exchange

Returns:Mono<Object>

the resolved argument (may be empty Mono)

Annotations
@Override
resolveNamedValueback to summary
protected abstract Object resolveNamedValue(String name, MethodParameter param, ServerWebExchange exchange)

Actually resolve the value synchronously.

Annotations
@Nullable