使用ehcache缓存可变对象时的注意事项

背景

使用ehcache时,默认从缓存获取的是对象引用,因此如果对该引用进行任何修改,都会同步到缓存中。

说明

这篇文章说的非常好:ehcache2拾遗之copyOnRead,copyOnWrite

在ehcache的配置中,增加上面的两个属性即可,再从缓存获取对象时,不再是对象引用,而是创建一个深度复制的克隆对象,这样的话就不会对原对象有任何影响。

其他

我之前有一篇介绍 transient 关键字的博文:使用transient关键字解决ehcache序列化错误

在使用 copyOnRead / copyOnWrite 配置,并对属性添加 transient 关键字后,会出现反序列之后的对象丢失该属性的情况。

添加 static 后问题解决,例如:

private transient final static ReciveService reciveSer = Ioc.get(ReciveService.class);

版权声明: 本文为博主 网无忌 原创文章,欢迎转载,但请务必标注原文链接。

本文链接: https://www.cnblogs.com/netWild/p/15194342.html

原文地址:https://www.cnblogs.com/netWild/p/15194342.html