Spring数据绑定如何在后台运行?

时间:2014-04-05 16:08:55

标签: java spring spring-mvc data-binding

当用户在Spring MVC Web应用程序的上下文中请求某个URL时,我开始理解后台发生的一些事情。 但我无法弄清楚何时以及如何进行数据绑定,即输入表单的字段与模型对象之间的映射以及稍后在相关处理程序方法中注入该对象。

任何人都知道暗示了哪些类和方法,以及它在文档中出现在哪里?

1 个答案:

答案 0 :(得分:14)

例如,如果您向此处理程序发布代表SomeBean的数据:public void (SomeBean someBean),则会在Spring 4中发生以下情况。

  • InvocableHandlerMethod会迭代方法的参数,并会要求HandlerMethodArgumentResolverComposite实例解析每个参数的值。

  • HandlerMethodArgumentResolverComposite会询问HandlerMethodArgumentResolver是否支持给定参数。如果支持参数,则该参数用于解析值。

  • ModelAttributeMethodProcessor将支持给定的参数(SomeBean)并尝试解析其值。

  • resolveArgument方法中,ModelAttributeMethodProcessor将实例化参数类型的目标对象。

  • 然后调用WebDataBinderFactory创建一个WebDataBinder,负责将请求绑定到目标对象。

  • 绑定后,目标将被返回并作为处理程序方法的参数提供。

P.S。您应该阅读源代码而不是文档。