2017-07-18 62 views
1

看着docs@InitBinder在線的幾個例子,我從來沒有看到這些方法標記爲static。我的IDE聲稱他們可以標記爲static,我在這樣做時看不到任何錯誤,從概念上講,我認爲您可以用這種方式標記它。可以使用@InitBinder註解的方法標記爲靜態嗎?

這樣做有什麼缺點嗎?我明白這個方法不能返回一個值。

回答

1

處理@InitBinder註釋的Spring Web中的代碼不會使任何 假設或要求(無論它是否爲靜態)。

靜態和非靜態@InitBinder方法之間的區別歸結爲靜態和非靜態方法的標準Java語義,即對非靜態變量的訪問以及覆蓋該方法的能力。

如果您不需要實例變量或方法,您可以安全地使@InitBinder方法成爲靜態的,也是私有的。

不管是否@InitBinder方法靜態或不是,它可以稱作每個請求多次,如至少一次該請求的處理方法的各@PathVariable@RequestParam@RequestHeader@CookieValue參數。您可以使用WebDataBinder#getObjectName()檢查綁定到WebDataBinder對象的目標,並根據該信息自定義綁定器配置。

相關問題