java - Spring Cache - @CachePut 和 @CacheEvict 之间的真正区别

标签 java spring caching spring-cache

我读到的越多,我对它的了解就越少:)。

只有一个简单的问题,如果我希望使用更新中的新内容刷新 listAll,则在 update 方法中使用什么?什么是更安全/更好的实践,逐出或缓存?这让我有点困惑,我读了 15 个标签。 :D 我也会删除,我认为只需要 CacheEvict,对吗?

@Cacheable(CACHE1)
@RequestMapping(method = RequestMethod.POST)
public Object listAll(@Valid  @RequestParam("status") String status) {
   //code
    }

 @CachePut(CACHE1)
//or
 @CacheEvict(value = {CACHE1}, allEntries = true)
 @RequestMapping(method = RequestMethod.POST)
 public Object update(@RequestBody Project project{
    //code
   }

最佳答案

保存对象时使用 CachePut,删除对象时使用 CacheEvict。您可以想象也可以在保存时逐出,并让 getter 上的 Cacheable 注释处理获取新数据并重新缓存它,并完全避免使用 CachePut。

关于java - Spring Cache - @CachePut 和 @CacheEvict 之间的真正区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60670743/

相关文章:

java - Spring 注释 : Why @Required doesn't work when class is @Autowired

android - 为什么 DiskLruImageCache 会阻塞 I/O

caching - 使用 SSE/AVX 对压缩双向量的部分进行非时间存储

javascript - 如何获得数学函数的真实值

java - 使用 Spring Boot 和 Spring Batch 读取 .csv 文件并将其存储在数据库中

java - 如何使用 Android 的 AsyncTask 通过 JSoup 获取我的所有数据,然后将该信息发送到另一个类?

java - Spring Oauth2 增强权限

java - 如何在 Google 应用引擎中获取当前登录用户

java - 使用 HtmlUnit 预渲染 Javascript 网站(HTML 快照)

java - 如何在不重启服务器的情况下清除ehcache