Class AbstractNamedValueSyncArgumentResolver
java.lang.Object
org.springframework.web.reactive.result.method.HandlerMethodArgumentResolverSupport
org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver
org.springframework.web.reactive.result.method.annotation.AbstractNamedValueSyncArgumentResolver
- All Implemented Interfaces:
HandlerMethodArgumentResolver,SyncHandlerMethodArgumentResolver
- Direct Known Subclasses:
CookieValueMethodArgumentResolver,ExpressionValueMethodArgumentResolver,MatrixVariableMethodArgumentResolver,PathVariableMethodArgumentResolver,RequestAttributeMethodArgumentResolver,RequestHeaderMethodArgumentResolver,RequestParamMethodArgumentResolver
public abstract class AbstractNamedValueSyncArgumentResolver
extends AbstractNamedValueArgumentResolver
implements SyncHandlerMethodArgumentResolver
An extension of
AbstractNamedValueArgumentResolver for named value
resolvers that are synchronous and yet non-blocking. Sub-classes implement
the synchronous resolveNamedValue(java.lang.String, org.springframework.core.MethodParameter, org.springframework.web.server.ServerWebExchange) to which the asynchronous
resolveName(java.lang.String, org.springframework.core.MethodParameter, org.springframework.web.server.ServerWebExchange) delegates to by default.- Since:
- 5.0
- Author:
- Rossen Stoyanchev
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver
AbstractNamedValueArgumentResolver.NamedValueInfo -
Field Summary
Fields inherited from class org.springframework.web.reactive.result.method.HandlerMethodArgumentResolverSupport
logger -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractNamedValueSyncArgumentResolver(ConfigurableBeanFactory factory, ReactiveAdapterRegistry registry) Create a newAbstractNamedValueSyncArgumentResolver. -
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Mono<Object>resolveArgument(MethodParameter parameter, BindingContext bindingContext, ServerWebExchange exchange) Resolve the value for the method parameter.resolveArgumentValue(MethodParameter parameter, BindingContext context, ServerWebExchange exchange) Resolve the value for the method parameter synchronously.protected final reactor.core.publisher.Mono<Object>resolveName(String name, MethodParameter param, ServerWebExchange exchange) Resolve the given parameter type and value name into an argument value.protected abstract ObjectresolveNamedValue(String name, MethodParameter param, ServerWebExchange exchange) Actually resolve the value synchronously.Methods inherited from class org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver
createNamedValueInfo, handleMissingValue, handleMissingValue, handleResolvedValueMethods inherited from class org.springframework.web.reactive.result.method.HandlerMethodArgumentResolverSupport
checkAnnotatedParamNoReactiveWrapper, checkParameterType, checkParameterTypeNoReactiveWrapper, getAdapterRegistryMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.web.reactive.result.method.HandlerMethodArgumentResolver
supportsParameter
-
Constructor Details
-
AbstractNamedValueSyncArgumentResolver
protected AbstractNamedValueSyncArgumentResolver(@Nullable ConfigurableBeanFactory factory, ReactiveAdapterRegistry registry) Create a newAbstractNamedValueSyncArgumentResolver.- Parameters:
factory- a bean factory to use for resolving${...}placeholder and#{...}SpEL expressions in default values; ornullif default values are not expected to have expressionsregistry- for checking reactive type wrappers
-
-
Method Details
-
resolveArgument
public reactor.core.publisher.Mono<Object> resolveArgument(MethodParameter parameter, BindingContext bindingContext, ServerWebExchange exchange) Description copied from interface:HandlerMethodArgumentResolverResolve the value for the method parameter.- Specified by:
resolveArgumentin interfaceHandlerMethodArgumentResolver- Specified by:
resolveArgumentin interfaceSyncHandlerMethodArgumentResolver- Overrides:
resolveArgumentin classAbstractNamedValueArgumentResolver- Parameters:
parameter- the method parameterbindingContext- the binding context to useexchange- the current exchange- Returns:
Monofor the argument value, possibly empty
-
resolveArgumentValue
public Object resolveArgumentValue(MethodParameter parameter, BindingContext context, ServerWebExchange exchange) Description copied from interface:SyncHandlerMethodArgumentResolverResolve the value for the method parameter synchronously.- Specified by:
resolveArgumentValuein interfaceSyncHandlerMethodArgumentResolver- Parameters:
parameter- the method parametercontext- the binding context to useexchange- the current exchange- Returns:
- the resolved value, if any
-
resolveName
protected final reactor.core.publisher.Mono<Object> resolveName(String name, MethodParameter param, ServerWebExchange exchange) Description copied from class:AbstractNamedValueArgumentResolverResolve the given parameter type and value name into an argument value.- Specified by:
resolveNamein classAbstractNamedValueArgumentResolver- Parameters:
name- the name of the value being resolvedparam- the method parameter to resolve to an argument value (pre-nested in case of aOptionaldeclaration)exchange- the current exchange- Returns:
- the resolved argument (may be empty
Mono)
-
resolveNamedValue
@Nullable protected abstract Object resolveNamedValue(String name, MethodParameter param, ServerWebExchange exchange) Actually resolve the value synchronously.
-