这是来自 Spring 3.1 Spring Source 博客的代码示例:从 XML 到 @Configuration我正在尝试在我的应用程序中实现(这是在 Spring 2.0 中完成的,而不是由我完成的,所以需要大量学习)。
@FeatureConfiguration
class MvcFeatures {
@Feature
public MvcAnnotationDriven annotationDriven(ConversionService conversionService) {
return new MvcAnnotationDriven().conversionService(conversionService)
.argumentResolvers(new CustomArgumentResolver());
}
// ...
}
但是,我无法理解.argumentResolvers(new CustomArgumentResolver())的意义,他们的 CustomArgumentResolver 看起来像下面这样。它有什么意义?
public class CustomArgumentResolver implements WebArgumentResolver {
@Override
public Object resolveArgument(MethodParameter param, NativeWebRequest request) throws Exception {
RequestAttribute attr = param.getParameterAnnotation(RequestAttribute.class);
if (attr != null) {
return request.getAttribute(attr.value(), WebRequest.SCOPE_REQUEST);
} else {
return WebArgumentResolver.UNRESOLVED;
}
}
}