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

Roc*_*que 8 java data-binding spring spring-mvc

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

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

Bar*_*art 14

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

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

  • HandlerMethodArgumentResolverComposite会问它HandlerMethodArgumentResolver■如果他们支持给定的参数.如果支持参数,则该参数用于解析值.

  • A ModelAttributeMethodProcessor将支持给定的参数(SomeBean)并尝试解析它的值.

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

  • 然后它将调用a WebDataBinderFactory来创建一个WebDataBinder负责将请求绑定到目标对象的东西.

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

Ps您应该阅读源代码而不是文档.

  • 非常感谢,现在我可以开始挖掘这些类:)并且+1代表"而不是文档,你应该阅读源代码" (2认同)