查看文档和@InitBinder
在线的几个示例,我从未看到这些方法标记为static
. 我的 IDE 声称它们可以标记为static
,这样做时我没有看到任何错误,从概念上讲,我认为您可以这样标记它。
这样做有什么缺点吗?我了解该方法不得返回值。
查看文档和@InitBinder
在线的几个示例,我从未看到这些方法标记为static
. 我的 IDE 声称它们可以标记为static
,这样做时我没有看到任何错误,从概念上讲,我认为您可以这样标记它。
这样做有什么缺点吗?我了解该方法不得返回值。
Spring Web 中处理@InitBinder
注解的代码不做任何假设或要求,无论它是否是静态的。
静态和非静态方法之间的区别@InitBinder
归结为静态和非静态方法的标准 Java 语义,这意味着对非静态变量的访问和覆盖方法的能力。
如果您不需要实例变量或方法,您可以安全地将@InitBinder
方法设为静态,也可以设为私有。
无论@InitBinder
方法是否静态,每个请求都可以调用多次,例如请求处理方法的每个@PathVariable
, @RequestParam
,@RequestHeader
或参数至少调用一次。@CookieValue
您可以使用该信息检查绑定到WebDataBinder
对象的目标,WebDataBinder#getObjectName()
并根据该信息自定义绑定器配置。