并发调用缓存方法

时间:2015-09-01 21:09:11

标签: java spring caching spring-cache google-guava-cache

我在Guava缓存中使用Spring缓存抽象。 我有一个带有@Cacheable注释和参数(用作缓存键)的方法,可以将值放入缓存中。 但是这个方法是在多线程env中访问的,因此对该方法有多个并发调用具有相同的参数值。 这意味着创建要缓存的值的相同逻辑多次针对同一缓存键完成,并同时多次放入缓存中。 如果对于每个参数值(缓存键),该方法将仅被调用一次并且被放入缓存一次,则效率会高得多。 Spring可以处理这种情况吗?

1 个答案:

答案 0 :(得分:0)

从Spring Framework 4.3开始(在撰写本文时仍处于早期开发阶段),@Cacheable上的一个名为sync的新标志可用。如果您启用该标记,则基本上选择加入您所要求的内容。

Spring Framework 4.3 GA将于明年5月左右到期,但您应该会看到2016年第一季度的第一个里程碑。请尝试一下,如果适合您,请告诉我们。