Class ExpressionValueMethodArgumentResolver
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
org.springframework.web.reactive.result.method.annotation.ExpressionValueMethodArgumentResolver
- All Implemented Interfaces:
HandlerMethodArgumentResolver,SyncHandlerMethodArgumentResolver
Resolves method arguments annotated with
@Value.
An @Value does not have a name but gets resolved from the default
value string, which may contain ${...} placeholder or Spring Expression
Language #{...} expressions.
- 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
ConstructorsConstructorDescriptionExpressionValueMethodArgumentResolver(ConfigurableBeanFactory factory, ReactiveAdapterRegistry registry) Create a newExpressionValueMethodArgumentResolverinstance. -
Method Summary
Modifier and TypeMethodDescriptioncreateNamedValueInfo(MethodParameter parameter) Create theAbstractNamedValueArgumentResolver.NamedValueInfoobject for the given method parameter.protected voidhandleMissingValue(String name, MethodParameter parameter) Invoked when a named value is required, butAbstractNamedValueArgumentResolver.resolveName(String, MethodParameter, ServerWebExchange)returnednulland there is no default value.protected ObjectresolveNamedValue(String name, MethodParameter parameter, ServerWebExchange exchange) Actually resolve the value synchronously.booleansupportsParameter(MethodParameter param) Whether this resolver supports the given method parameter.Methods inherited from class org.springframework.web.reactive.result.method.annotation.AbstractNamedValueSyncArgumentResolver
resolveArgument, resolveArgumentValue, resolveNameMethods inherited from class org.springframework.web.reactive.result.method.annotation.AbstractNamedValueArgumentResolver
handleMissingValue, handleResolvedValueMethods inherited from class org.springframework.web.reactive.result.method.HandlerMethodArgumentResolverSupport
checkAnnotatedParamNoReactiveWrapper, checkParameterType, checkParameterTypeNoReactiveWrapper, getAdapterRegistry
-
Constructor Details
-
ExpressionValueMethodArgumentResolver
public ExpressionValueMethodArgumentResolver(@Nullable ConfigurableBeanFactory factory, ReactiveAdapterRegistry registry) Create a newExpressionValueMethodArgumentResolverinstance.- Parameters:
factory- a bean factory to use for resolving${...}placeholder and#{...}SpEL expressions in default values; ornullif default values are not expected to contain expressionsregistry- for checking reactive type wrappers
-
-
Method Details
-
supportsParameter
Description copied from interface:HandlerMethodArgumentResolverWhether this resolver supports the given method parameter.- Parameters:
param- the method parameter
-
createNamedValueInfo
protected AbstractNamedValueArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter) Description copied from class:AbstractNamedValueArgumentResolverCreate theAbstractNamedValueArgumentResolver.NamedValueInfoobject for the given method parameter. Implementations typically retrieve the method annotation by means ofMethodParameter.getParameterAnnotation(Class).- Specified by:
createNamedValueInfoin classAbstractNamedValueArgumentResolver- Parameters:
parameter- the method parameter- Returns:
- the named value information
-
resolveNamedValue
protected Object resolveNamedValue(String name, MethodParameter parameter, ServerWebExchange exchange) Description copied from class:AbstractNamedValueSyncArgumentResolverActually resolve the value synchronously.- Specified by:
resolveNamedValuein classAbstractNamedValueSyncArgumentResolver
-
handleMissingValue
Description copied from class:AbstractNamedValueArgumentResolverInvoked when a named value is required, butAbstractNamedValueArgumentResolver.resolveName(String, MethodParameter, ServerWebExchange)returnednulland there is no default value. Subclasses typically throw an exception in this case.- Overrides:
handleMissingValuein classAbstractNamedValueArgumentResolver- Parameters:
name- the name for the valueparameter- the method parameter
-