原文地址:https://blog.csdn.net/wgzhl2008/article/details/82184240
最近在使用spring-data-redis時,使用fastjson的序列化方式
GenericFastJsonRedisSerializer
可以正常序列化,但在反序列化時發生了如下異常com.alibaba.fastjson.JSONException: autoType is not support. com.hongshu.groovy.dto.Account。
仔細閱讀了fastjson.ParserConfig源碼,發現在1078行發生了異常
因為在GenericFastJsonRedisSerializer中,如下所示,把autoTypeSupport設置為true,
所以導致異常產生的原因是因為在fastjson在反序列化時,build JavaBeanInfo時。對是否有默認的構造方法做了檢查。看到原因后,直接去自己的Domain中去查看,果然是沒有默認的構造的方法。
總結:在使用fastjson類序列化時,尤其是redis這個序列的支持,在類中要加保證一默認的構造方法,否則在進行反序列化時,fastjosn根據typeName進行反序列化,會發生該異常