Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据绑定在后台是如何工作的?_Java_Spring_Spring Mvc_Data Binding - Fatal编程技术网

Java Spring数据绑定在后台是如何工作的?

Java Spring数据绑定在后台是如何工作的?,java,spring,spring-mvc,data-binding,Java,Spring,Spring Mvc,Data Binding,我开始了解一点,当用户在SpringMVCWeb应用程序的上下文中请求某个URL时,在后台会发生什么。 但我无法确定数据绑定是何时以及如何发生的,即输入表单的字段到模型对象之间的映射,以及随后在相关处理程序方法中注入该对象 有人知道隐含了哪些类和方法,以及这些类和方法出现在文档中的什么地方吗?例如,如果您将表示SomeBean的数据发布到此处理程序:public void(SomeBean SomeBean)以下情况发生在Spring 4中 InvocableHandlerMethod将迭代该

我开始了解一点,当用户在SpringMVCWeb应用程序的上下文中请求某个URL时,在后台会发生什么。 但我无法确定数据绑定是何时以及如何发生的,即输入表单的字段到模型对象之间的映射,以及随后在相关处理程序方法中注入该对象


有人知道隐含了哪些类和方法,以及这些类和方法出现在文档中的什么地方吗?

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

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

  • HandlerMethodArgumentResolver组件将询问它的
    HandlerMethodArgumentResolver
    s是否支持给定参数。如果支持该参数,则此参数用于解析该值

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

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

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

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


另外,您应该阅读源代码而不是文档。

非常感谢,现在我可以开始深入研究这些类:)和+1,因为“您应该阅读源代码而不是文档”