Class AbstractNamedValueMethodArgumentResolver
java.lang.Object
org.springframework.messaging.handler.annotation.reactive.AbstractNamedValueMethodArgumentResolver
- All Implemented Interfaces:
- HandlerMethodArgumentResolver,- SyncHandlerMethodArgumentResolver
- Direct Known Subclasses:
- DestinationVariableMethodArgumentResolver,- HeaderMethodArgumentResolver
public abstract class AbstractNamedValueMethodArgumentResolver
extends Object
implements SyncHandlerMethodArgumentResolver
Abstract base class to resolve method arguments from a named value, e.g.
 message headers or destination variables. Named values could have one or more
 of a name, a required flag, and a default value.
 
Subclasses only need to define specific steps such as how to obtain named value details from a method parameter, how to resolve to argument values, or how to handle missing values.
A default value string can contain ${...} placeholders and Spring
 Expression Language #{...} expressions which will be resolved if a
 ConfigurableBeanFactory is supplied to the class constructor.
 
A ConversionService is used to convert a resolved String argument
 value to the expected target method parameter type.
- Since:
- 5.2
- Author:
- Rossen Stoyanchev
- 
Nested Class SummaryNested ClassesModifier and TypeClassDescriptionprotected static classRepresents a named value declaration.
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedAbstractNamedValueMethodArgumentResolver(ConversionService conversionService, ConfigurableBeanFactory beanFactory) Constructor with aConversionServiceand aBeanFactory.
- 
Method SummaryModifier and TypeMethodDescriptionprotected abstract AbstractNamedValueMethodArgumentResolver.NamedValueInfocreateNamedValueInfo(MethodParameter parameter) Create theAbstractNamedValueMethodArgumentResolver.NamedValueInfoobject for the given method parameter.protected abstract voidhandleMissingValue(String name, MethodParameter parameter, Message<?> message) Invoked when a value is required, butresolveArgumentInternal(org.springframework.core.MethodParameter, org.springframework.messaging.Message<?>, java.lang.String)returnednulland there is no default value.protected abstract ObjectresolveArgumentInternal(MethodParameter parameter, Message<?> message, String name) Resolves the given parameter type and value name into an argument value.resolveArgumentValue(MethodParameter parameter, Message<?> message) Resolve the value for the method parameter synchronously.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.messaging.handler.invocation.reactive.HandlerMethodArgumentResolversupportsParameterMethods inherited from interface org.springframework.messaging.handler.invocation.reactive.SyncHandlerMethodArgumentResolverresolveArgument
- 
Constructor Details- 
AbstractNamedValueMethodArgumentResolverprotected AbstractNamedValueMethodArgumentResolver(ConversionService conversionService, @Nullable ConfigurableBeanFactory beanFactory) Constructor with aConversionServiceand aBeanFactory.- Parameters:
- conversionService- conversion service for converting String values to the target method parameter type
- beanFactory- a bean factory for resolving- ${...}placeholders and- #{...}SpEL expressions in default values
 
 
- 
- 
Method Details- 
resolveArgumentValueDescription copied from interface:SyncHandlerMethodArgumentResolverResolve the value for the method parameter synchronously.- Specified by:
- resolveArgumentValuein interface- SyncHandlerMethodArgumentResolver
- Parameters:
- parameter- the method parameter
- message- the currently processed message
- Returns:
- the resolved value, if any
 
- 
createNamedValueInfoprotected abstract AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter) Create theAbstractNamedValueMethodArgumentResolver.NamedValueInfoobject for the given method parameter. Implementations typically retrieve the method annotation by means ofMethodParameter.getParameterAnnotation(Class).- Parameters:
- parameter- the method parameter
- Returns:
- the named value information
 
- 
resolveArgumentInternal@Nullable protected abstract Object resolveArgumentInternal(MethodParameter parameter, Message<?> message, String name) Resolves the given parameter type and value name into an argument value.- Parameters:
- parameter- the method parameter to resolve to an argument value
- message- the current request
- name- the name of the value being resolved
- Returns:
- the resolved argument. May be null
 
- 
handleMissingValueprotected abstract void handleMissingValue(String name, MethodParameter parameter, Message<?> message) Invoked when a value is required, butresolveArgumentInternal(org.springframework.core.MethodParameter, org.springframework.messaging.Message<?>, java.lang.String)returnednulland there is no default value. Sub-classes can throw an appropriate exception for this case.- Parameters:
- name- the name for the value
- parameter- the target method parameter
- message- the message being processed
 
 
-