型別轉換
一些表示基於字串的請求輸入(例如,@RequestParam、@RequestHeader、@PathVariable、@MatrixVariable 和 @CookieValue)的帶註解控制器方法引數,如果引數被宣告為 String 以外的型別,則可能需要型別轉換。
在這種情況下,型別轉換會根據配置的轉換器自動應用。預設情況下,支援簡單型別(例如 int、long、Date 等)。型別轉換可以透過 WebDataBinder(參見 DataBinder)或透過向 FormattingConversionService 註冊 Formatters(參見 Spring 欄位格式化)進行自定義。
型別轉換中一個實際問題是對空字串源值的處理。如果此類值由於型別轉換而變為 null,則將其視為缺失。對於 Long、UUID 和其他目標型別來說,可能會出現這種情況。如果您希望允許注入 null,請使用引數註解上的 required 標誌,或將引數宣告為 @Nullable。