SpringBoot项目整合RedisTemplate设置序列化后运行异常
异常原因
返回的JSON里面包含了实体没有的字段导致反序列化失败。查阅相关源码后发现在序列化时,实体类中所有方法的返回值都会序列化,但是反序列化是根据实体类的set方法实现的,所以一旦实体类中存在没有set方法的get方法,或者是有返回值的非get方法,反序列化时就会抛出opsForValueCould not read JSON: Unrecognized field "enabled"异常。
解决方法
- 每个转换的实体变量都必须要有set和get方法,总之set和get必须同时存在
- 实体类使用注解@JsonIgnoreProperties(ignoreUnknown = true)修饰。
评论区