Converter和HandlerMethodArgumentResolver有什么区别?

时间:2015-11-17 13:07:22

标签: java spring spring-mvc data-binding type-conversion

在Spring MVC中,我可以使用PropertyEditorConverter)或WebArgumentResolverHandlerMethodArgumentResolver)来制作自定义命令和表单支持对象。我不知道应该使用哪一个以及它们之间的区别是什么?非常感谢!

P.S。我知道现在推荐ConverterHandlerMethodArgumentResolver。我已阅读以下帖子:

Spring MVC type conversion : PropertyEditor or Converter?

Upgrading to spring-3.1 seems to break my CustomWebArgumentResolver

1 个答案:

答案 0 :(得分:0)

转换器只需在两种不同类型之间进行转换。 HttpMessageConverter将具有已定义媒体类型的请求消息转换为已定义类的实例。转换器通常由参数解析器调用。

参数解析器为参数提供值。例如。有一个解析器根据请求参数(@RequestParam)或转换请求体(@RequestBody)的值创建值。两者都使用转换器。

但该值不必与请求相关。您可以创建一个返回当前时间的解析器,例如

public void foo(@CurrentTime Date) {