首页 > 解决方案 > Spring Cacheable返回对象的副本

问题描述

我有一个返回某个类的对象的缓存方法。我的应用程序是多线程的。当一个线程获取缓存对象并对其进行处理时,另一个线程也可以获取并修改该对象,并且第一个线程有问题。

@Cacheable(value="MyCache")
Script parse(String scriptText) {
    return new MyObject(scriptText);
}

如何配置它该方法返回缓存对象的副本而不是相同的对象。或者在请求缓存值时如何序列化方法结果和反序列化。

我正在使用带有 Ehcache 的 Spring Boot。

标签: javaspring-bootehcache-2

解决方案


如果您删除可缓存注释,您将始终获得一个新对象。是否有迫切的理由首先缓存对象?通常构造函数很便宜。缓存是否可能是过早的优化?


推荐阅读