用@InitBinder注释的方法是否可以标记为静态?



查看文档和几个在线@InitBinder示例,我从未看到这些方法标记为static。 我的IDE声称它们可以标记为static,这样做时我没有看到任何错误,从概念上讲,我认为您可以通过这种方式标记它。

这样做有什么缺点吗? 我知道该方法不得返回值。

Spring Web 中处理@InitBinder注释的代码不会产生任何 假设或要求是否是静态的。

静态和非静态@InitBinder方法之间的差异归结为静态和非静态方法的标准Java语义,这意味着对非静态变量的访问和覆盖方法的能力。

如果不需要实例变量或方法,则可以安全地@InitBinder方法设为静态和私有。

无论@InitBinder方法是否静态,每个请求都可以调用多次,比如每个请求处理方法的每个@PathVariable@RequestParam@RequestHeader@CookieValue参数至少调用一次。您可以使用WebDataBinder#getObjectName()检查绑定到WebDataBinder对象的目标,并根据该信息自定义绑定程序配置。

最新更新