今天在实际开发中遇到一个异常
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException
大概的问题意思就是Java对象在反序列化时有属性缺少。
我们项目的架构是前端使用SpringMVC+Spring+jdbcTemplate,服务是SpringCloud+Mybatis。
通常在前台调用服务的时候会将对象进行json转换,到服务在将json转成相应的对象,我起初的解决方法是两边实体类高度同步,这样会在服务的实体类加入很多冗余字段,而且使得前台和服务高度耦合,导致频繁修改。比如,在前台的实体类再新增一个属性,服务对应的实体类就得相应的添加一个相同的属性。
上网细查后,发现有两种解决方法:
1、objectMapper对象设置属性
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
2、反序列化实体类上加注解
@JsonIgnoreProperties(ignoreUnknown = true)