类 AbstractNamedValueMethodArgumentResolver
- java.lang.Object
- org.springframework.messaging.handler.annotation.support.AbstractNamedValueMethodArgumentResolver
- 所有已实现的接口:
HandlerMethodArgumentResolver
public abstract class AbstractNamedValueMethodArgumentResolver extends Object implements HandlerMethodArgumentResolver
Abstract base class for resolving method arguments from a named value. Message headers, and path variables are examples of named values. Each may have a name, a required flag, and a default value.Subclasses define how to do the following:
- Obtain named value information for a method parameter
- Resolve names into argument values
- Handle missing argument values when argument values are required
- Optionally handle a resolved value
A default value string can contain ${...} placeholders and Spring Expression Language
#{...}
expressions. For this to work aConfigurableBeanFactory
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.- 从以下版本开始:
- 4.0
- 作者:
- Rossen Stoyanchev, Juergen Hoeller
嵌套类概要
嵌套类 修饰符和类型 类 说明 protected static class
AbstractNamedValueMethodArgumentResolver.NamedValueInfo
Represents the information about a named value, including name, whether it's required and a default value.
构造器概要
构造器 限定符 构造器 说明 protected
AbstractNamedValueMethodArgumentResolver(ConversionService cs, ConfigurableBeanFactory beanFactory)
Constructor with aConversionService
and aBeanFactory
.
方法概要
所有方法 实例方法 抽象方法 具体方法 修饰符和类型 方法 说明 protected abstract AbstractNamedValueMethodArgumentResolver.NamedValueInfo
createNamedValueInfo(MethodParameter parameter)
Create theAbstractNamedValueMethodArgumentResolver.NamedValueInfo
object for the given method parameter.protected abstract void
handleMissingValue(String name, MethodParameter parameter, Message<?> message)
Invoked when a named value is required, butresolveArgumentInternal(MethodParameter, Message, String)
returnednull
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.从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
从接口继承的方法 org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver
supportsParameter
构造器详细资料
AbstractNamedValueMethodArgumentResolver
protected AbstractNamedValueMethodArgumentResolver(ConversionService cs, ConfigurableBeanFactory beanFactory)
Constructor with aConversionService
and aBeanFactory
.- 参数:
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, ornull
if default values are not expected to contain expressions
方法详细资料
resolveArgument
public Object resolveArgument(MethodParameter parameter, Message<?> message) throws Exception
从接口复制的说明:HandlerMethodArgumentResolver
Resolves a method parameter into an argument value from a given message.- 指定者:
resolveArgument
在接口中HandlerMethodArgumentResolver
- 参数:
parameter
- the method parameter to resolve. This parameter must have previously been passed toHandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)
which must have returnedtrue
.message
- the currently processed message- 返回:
- the resolved argument value, or
null
- 抛出:
Exception
- in case of errors with the preparation of argument values
createNamedValueInfo
protected abstract AbstractNamedValueMethodArgumentResolver.NamedValueInfo createNamedValueInfo(MethodParameter parameter)
Create theAbstractNamedValueMethodArgumentResolver.NamedValueInfo
object for the given method parameter. Implementations typically retrieve the method annotation by means ofMethodParameter.getParameterAnnotation(Class)
.- 参数:
parameter
- the method parameter- 返回:
- the named value information
resolveArgumentInternal
protected abstract Object resolveArgumentInternal(MethodParameter parameter, Message<?> message, String name) throws Exception
Resolves the given parameter type and value name into an argument value.- 参数:
parameter
- the method parameter to resolve to an argument valuemessage
- the current requestname
- the name of the value being resolved- 返回:
- the resolved argument. May be
null
- 抛出:
Exception
- in case of errors
handleMissingValue
protected abstract void handleMissingValue(String name, MethodParameter parameter, Message<?> message)
Invoked when a named value is required, butresolveArgumentInternal(MethodParameter, Message, String)
returnednull
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 processed
handleResolvedValue
protected void handleResolvedValue(Object arg, String name, MethodParameter parameter, Message<?> message)
Invoked after a value is resolved.- 参数:
arg
- the resolved argument valuename
- the argument nameparameter
- the argument parameter typemessage
- the message