类型转换

一些代表基于字符串的请求输入的带注释的控制器方法参数(例如,@RequestParam@RequestHeader@PathVariable@MatrixVariable@CookieValue)如果参数声明为除 String 之外的其他类型,则可能需要类型转换。

对于此类情况,类型转换将根据配置的转换器自动应用。默认情况下,支持简单类型(例如 intlongDate 等)。可以通过 WebDataBinder(参见 DataBinder)或通过向 FormattingConversionService 注册 Formatters 来自定义类型转换(参见 Spring 字段格式化)。

类型转换中的一个实际问题是空字符串源值的处理。如果由于类型转换而导致该值变为 null,则该值将被视为缺失。这可能是 LongUUID 和其他目标类型的情况。如果要允许注入 null,请在参数注释上使用 required 标志,或将参数声明为 @Nullable