看着docs和@InitBinder
在線的幾個例子,我從來沒有看到這些方法標記爲static
。我的IDE聲稱他們可以標記爲static
,我在這樣做時看不到任何錯誤,從概念上講,我認爲您可以用這種方式標記它。可以使用@InitBinder註解的方法標記爲靜態嗎?
這樣做有什麼缺點嗎?我明白這個方法不能返回一個值。
看着docs和@InitBinder
在線的幾個例子,我從來沒有看到這些方法標記爲static
。我的IDE聲稱他們可以標記爲static
,我在這樣做時看不到任何錯誤,從概念上講,我認爲您可以用這種方式標記它。可以使用@InitBinder註解的方法標記爲靜態嗎?
這樣做有什麼缺點嗎?我明白這個方法不能返回一個值。
處理@InitBinder
註釋的Spring Web中的代碼不會使任何 假設或要求(無論它是否爲靜態)。
靜態和非靜態@InitBinder
方法之間的區別歸結爲靜態和非靜態方法的標準Java語義,即對非靜態變量的訪問以及覆蓋該方法的能力。
如果您不需要實例變量或方法,您可以安全地使@InitBinder
方法成爲靜態的,也是私有的。
不管是否@InitBinder
方法靜態或不是,它可以稱作每個請求多次,如至少一次該請求的處理方法的各@PathVariable
,@RequestParam
,@RequestHeader
或@CookieValue
參數。您可以使用WebDataBinder#getObjectName()
檢查綁定到WebDataBinder
對象的目標,並根據該信息自定義綁定器配置。