缓存分页请求并清除数据

时间:2018-04-04 17:01:11

标签: java spring-boot

我正在使用Spring构建一个Web服务。一个分页请求具有 userID ,请求的编号和页面的 size 作为参数。我想缓存对此请求的响应。基本上我有

@Cacheable(value="foo", key="{#userId,#page,#size}")
public Bar getPaginatedResponse(String userId, int page, int size) {
...}

这部分工作正常。问题是我有另一个更改用户数据的请求。当我调用它时,无论页面 size 所有 userId 的缓存条目>参数。

public Baz updateUser(String userId, String data) {
...}

显然我不能使用@CacheEvict,因为它与参数完全匹配。是否有使用方便库的解决方案或我是否必须自己编写所有内容?

我使用foo,bar,baz代替实际的类和名称。如果我返回ResponseEntity>我不会认为对缓存问题很重要或一个简单的对象。到目前为止我使用的是ehcache 3.0.0,但这很容易改变。使用Spring以外的东西是不切实际的。

0 个答案:

没有答案