如何确保修改Ehcache缓存值时,缓存内值同步更新?

2026-05-22 18:380阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计602个文字,预计阅读时间需要3分钟。

%E4%BF%AE%E6%94%B9Ehcache%E7%BC%93%E5%AD%98%E5%80%BC%E5%92%8C%E5%AF%B9%E8%B1%A1%E5%B1%9E%E6%80%A7%EF%BC%8C%E5%90%8E%E8%BF%94%E5%9B%9E%E7%BC%93%E5%AD%98%E5%AF%B9%E8%B1%A1%E5%8F%91%E7%8E%B0%E5%B1%9E%E6%80%A7%E5%B9%B6%E6%9B%B4%E6%94%B9。

修改Ehcache缓存中取到的值,缓存中的值也被修改了 问题现象

我们从Ehcache中取出缓存的对象,之后将对象中的属性进行了修改使用。等再次从缓存中拿到对象后,发现对象的值变成了上一次调用修改后的对象了。

原因

Ehcache中缓存的是原对象的引用,所以引用的内容被修改后cache内部的值也会被修改。

解决方案 使用Ehcache的copyStrategy

Ehcache提供了copyOnRead="true" copyOnWrite="true"的配置属性。
作用是在读取或写入数据时,不使用原始数据,而是使用拷贝数据。
但是在使用该配置的时候,还要提供copyStrategy class属性,提供Copy策略。

阅读全文
标签:

本文共计602个文字,预计阅读时间需要3分钟。

%E4%BF%AE%E6%94%B9Ehcache%E7%BC%93%E5%AD%98%E5%80%BC%E5%92%8C%E5%AF%B9%E8%B1%A1%E5%B1%9E%E6%80%A7%EF%BC%8C%E5%90%8E%E8%BF%94%E5%9B%9E%E7%BC%93%E5%AD%98%E5%AF%B9%E8%B1%A1%E5%8F%91%E7%8E%B0%E5%B1%9E%E6%80%A7%E5%B9%B6%E6%9B%B4%E6%94%B9。

修改Ehcache缓存中取到的值,缓存中的值也被修改了 问题现象

我们从Ehcache中取出缓存的对象,之后将对象中的属性进行了修改使用。等再次从缓存中拿到对象后,发现对象的值变成了上一次调用修改后的对象了。

原因

Ehcache中缓存的是原对象的引用,所以引用的内容被修改后cache内部的值也会被修改。

解决方案 使用Ehcache的copyStrategy

Ehcache提供了copyOnRead="true" copyOnWrite="true"的配置属性。
作用是在读取或写入数据时,不使用原始数据,而是使用拷贝数据。
但是在使用该配置的时候,还要提供copyStrategy class属性,提供Copy策略。

阅读全文
标签: