为了账号安全,请及时绑定邮箱和手机立即绑定

如何在bean类的字段结构周期性变化的情况下反序列化同一个bean类的不同版本?

如何在bean类的字段结构周期性变化的情况下反序列化同一个bean类的不同版本?

德玛西亚99 2021-06-07 17:23:46
例如,我有一个稳定的服务器运行。它通过Status以 json 格式序列化一个实例,在zookeeper 实例上注册服务器状态。一段时间后,我在Status类中添加了一个实例字段,并testserver在同一个 zookeeper 实例上开始另一个注册其服务器状态。现在我需要编写一些检查器程序来监视两台服务器。我应该怎么做才能正确反序列化两个版本并希望处理未来版本的Status类?我试图删除所有字段并改用地图。但是感觉不是很方便。像这样:public class Status{    private int serverId;    //...}// changes topublic class Status{    public static final String SERVERID = "serverId";    private Map<String, Object> properties = new HashMap<>();    //... }有什么建议么?有没有处理这种情况的最佳实践?
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

如果您使用 Jackson 来序列化和反序列化您的类,您可以将配置设置为忽略未知或缺失的字段,以允许您的 Status bean 进化:

  • FAIL_ON_UNKNOWN_PROPERTIES

  • FAIL_ON_MISSING_CREATOR_PROPERTIES

这将允许监视器使用不同版本的服务器状态 JSON 实例。


查看完整回答
反对 回复 2021-06-23
  • 1 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信