类型转换
一些表示基于字符串请求输入的注解控制器方法参数(例如,@RequestParam
、@RequestHeader
、@PathVariable
、@MatrixVariable
和 @CookieValue
)如果参数声明为 String
以外的类型,则可能需要进行类型转换。
对于这种情况,类型转换会根据配置的转换器自动应用。默认情况下,支持简单类型(例如 int
、long
、Date
等)。类型转换可以通过 WebDataBinder
(参见 DataBinder
)或通过向 FormattingConversionService
注册 Formatter
(参见 Spring 字段格式化)进行自定义。
类型转换中一个实际问题是对空字符串源值的处理。如果此类值在类型转换后变为 null
,则将其视为缺失。这可能发生在 Long
、UUID
和其他目标类型上。如果您希望允许注入 null
,请使用参数注解上的 required
标志,或将参数声明为 @Nullable
。