简介
springboot可以将接收到的参数值自动转换成对象或相应类型的参数,当定义了Enum类型的参数时,传入的参数值又不在定义范围内时,springboot会报错,这有点不实用了。通常在这种情况我们可能期望得到一个null值的Enum参数而不是报错,那么应该如何处理呢?
解决方案
只需要在项目中增加一个Jackson相关的配置即可,具体代码如下
@Configuration
public class JacksonConfiguration {
@Bean
public Jackson2ObjectMapperBuilder objectMapperBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.featuresToEnable(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL);
// 如果需要,还可以在这里配置其他特性,例如:
// builder.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
return builder;
}
}