Class AbstractNamedValueMethodArgumentResolver
java.lang.Object
org.springframework.messaging.handler.annotation.support.AbstractNamedValueMethodArgumentResolver
- All Implemented Interfaces:
- HandlerMethodArgumentResolver
- Direct Known Subclasses:
- DestinationVariableMethodArgumentResolver,- HeaderMethodArgumentResolver
public abstract class AbstractNamedValueMethodArgumentResolver
extends Object
implements HandlerMethodArgumentResolver
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:
- 4.0
- Author:
- Rossen Stoyanchev, Juergen Hoeller
- 
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 voidhandleResolvedValue(Object arg, String name, MethodParameter parameter, Message<?> message) Invoked after a value is resolved.resolveArgument(MethodParameter parameter, Message<?> message) Resolves a method parameter into an argument value from a given message.protected abstract ObjectresolveArgumentInternal(MethodParameter parameter, Message<?> message, String name) Resolves the given parameter type and value name into an argument value.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.HandlerMethodArgumentResolversupportsParameter
- 
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- 
resolveArgumentDescription copied from interface:HandlerMethodArgumentResolverResolves a method parameter into an argument value from a given message.- Specified by:
- resolveArgumentin interface- HandlerMethodArgumentResolver
- Parameters:
- parameter- the method parameter to resolve. This parameter must have previously been passed to- HandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)which must have returned- true.
- message- the currently processed message
- Returns:
- the resolved argument value, or null
- Throws:
- Exception- in case of errors with the preparation of argument values
 
- 
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) throws Exception 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
- Throws:
- Exception- in case of errors
 
- 
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
 
- 
handleResolvedValueprotected void handleResolvedValue(@Nullable Object arg, String name, MethodParameter parameter, Message<?> message) Invoked after a value is resolved.- Parameters:
- arg- the resolved argument value
- name- the argument name
- parameter- the argument parameter type
- message- the message
 
 
-