首页 > 解决方案 > Cacheable 注解中的同步参数如何工作?

问题描述

@CacheableSpring 中的注解在第一次调用时运行方法,然后缓存结果。对于将来的引用,它实际上并不运行方法,只是返回缓存的结果。

同步参数说:

如果多个线程试图为同一个键加载一个值,则同步底层方法的调用。

所以我的问题是什么时候应用这种同步?是否仅在第一次调用期间,因为在那之后该方法实际上并没有被调用?为什么它@Cacheable是同步的而@CachePut不是同步的?

@Cacheable和之间的区别在于@CachePut@Cacheable 它将跳过运行该方法,而@CachePut实际运行该方法,然后将其结果放入缓存中。

将同步与实际运行该方法并更新缓存的注释一起使用更有意义,即@CachePut. 既然@Cacheable无法更新缓存中的现有条目,为什么还需要同步呢?我在这里想念什么?幕后的过程是怎样的?

标签: javaspringcachingsynchronization

解决方案


推荐阅读