【问题标题】:Spring Cache: Evict multiple cachesSpring Cache:驱逐多个缓存
【发布时间】:2014-10-12 07:06:08
【问题描述】:

我正在使用 Spring Cache 抽象,并且定义了多个缓存。有时,当数据发生变化时,我想驱逐多个缓存。 是否可以使用 Spring 的 @CacheEvict 注释来驱逐多个缓存?

【问题讨论】:

    标签: java spring spring-cache


    【解决方案1】:

    你可以这样做:

    @Caching(evict = {
        @CacheEvict("primary"),
        @CacheEvict(value = "secondary", key = "#p0")
    })
    

    查看Reference了解详情

    【讨论】:

    • 如果 1 是 @CachePut 而另一个是 @CacheEvict 怎么办?
    【解决方案2】:

    保持简洁:您可以通过在@CacheEvict 注解中枚举多个缓存来驱逐多个缓存:

    @CacheEvict(value = { "cache1", "cache2" }, allEntries = true)
    

    【讨论】:

    • 好吧,假设您希望将相同的附加参数 (allEntries = true) 应用于您指定的所有缓存。根据我的经验,这种情况并不常见。
    • 你会如何处理使用这种语法的键?
    • 可以提到这样的键@CacheEvict(value = { "cache1", "cache2" }, key = "key")
    猜你喜欢
    • 2016-09-10
    • 1970-01-01
    • 2018-03-23
    • 2018-12-16
    • 2020-07-14
    • 2011-11-11
    • 2018-05-17
    • 2017-06-18
    • 1970-01-01
    相关资源
    最近更新 更多