public abstract class AbstractNamedValueMethodArgumentResolver extends Object implements HandlerMethodArgumentResolver
Subclasses define how to do the following:
A default value string can contain ${...} placeholders and Spring Expression
Language #{...} expressions. For this to work a ConfigurableBeanFactory
must be supplied to the class constructor.
A ConversionService may be used to apply type conversion to the resolved
argument value if it doesn't match the method parameter type.
| Modifier and Type | Class and Description |
|---|---|
protected static class |
AbstractNamedValueMethodArgumentResolver.NamedValueInfo
Represents the information about a named value, including name, whether it's
required and a default value.
|
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractNamedValueMethodArgumentResolver(ConversionService cs,
ConfigurableBeanFactory beanFactory)
Constructor with a
ConversionService and a BeanFactory. |
| Modifier and Type | Method and Description |
|---|---|
protected abstract AbstractNamedValueMethodArgumentResolver.NamedValueInfo |
createNamedValueInfo(MethodParameter parameter)
Create the
AbstractNamedValueMethodArgumentResolver.NamedValueInfo object for the given method parameter. |
protected abstract void |
handleMissingValue(String name,
MethodParameter parameter,
Message<?> message)
Invoked when a named value is required, but
resolveArgumentInternal(MethodParameter, Message, String) returned null and
there is no default value. |
protected void |
handleResolvedValue(Object arg,
String name,
MethodParameter parameter,
Message<?> message)
Invoked after a value is resolved.
|
Object |
resolveArgument(MethodParameter parameter,
Message<?> message)
Resolves a method parameter into an argument value from a given message.
|
protected abstract Object |
resolveArgumentInternal(MethodParameter parameter,
Message<?> message,
String name)
Resolves the given parameter type and value name into an argument value.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitsupportsParameterprotected AbstractNamedValueMethodArgumentResolver(ConversionService cs, ConfigurableBeanFactory beanFactory)
ConversionService and a BeanFactory.cs - conversion service for converting values to match the
target method parameter typebeanFactory - a bean factory to use for resolving ${...} placeholder
and #{...} SpEL expressions in default values, or null if default
values are not expected to contain expressionspublic Object resolveArgument(MethodParameter parameter, Message<?> message) throws Exception
HandlerMethodArgumentResolverresolveArgument in interface HandlerMethodArgumentResolverparameter - the method parameter to resolve. This parameter must
have previously been passed to
HandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)
and it must have returned truemessage - the currently processed messagenull.Exception - in case of errors with the preparation of argument valuesprotected abstract AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
AbstractNamedValueMethodArgumentResolver.NamedValueInfo object for the given method parameter. Implementations typically
retrieve the method annotation by means of MethodParameter.getParameterAnnotation(Class).parameter - the method parameterprotected abstract Object resolveArgumentInternal(MethodParameter parameter, Message<?> message, String name) throws Exception
parameter - the method parameter to resolve to an argument valuemessage - the current requestname - the name of the value being resolvednullException - in case of errorsprotected abstract void handleMissingValue(String name, MethodParameter parameter, Message<?> message)
resolveArgumentInternal(MethodParameter, Message, String) returned null and
there is no default value. Subclasses typically throw an exception in this case.name - the name for the valueparameter - the method parametermessage - the message being processedprotected void handleResolvedValue(Object arg, String name, MethodParameter parameter, Message<?> message)
arg - the resolved argument valuename - the argument nameparameter - the argument parameter typemessage - the message