Spring缓存创建新项目

时间:2018-11-26 09:43:56

标签: java spring caching

我正在使用商品ID来标识这样的缓存数据:

@CachePut(value = "users", key = "#p0.id")
@RequestMapping(value = "/user", method = RequestMethod.PUT)
public User updateUser(@RequestBody User user);

函数创建后创建新的Item返回项ID。创建新项目后如何将项目保存到缓存中?

@Cacheable(value = "users", key = "???")
@RequestMapping(value = "/user", method = RequestMethod.POST)
public User createUser(@RequestBody User user);

3 个答案:

答案 0 :(得分:0)

使用@CachePut

@CachePut(value = "users", key = "#result.id"")
@RequestMapping(value = "/user", method = RequestMethod.POST)
public User createUser(@RequestBody User user);

答案 1 :(得分:0)

我建议创建服务类并将所有这些方法放入其中。 同样在store方法(在您的情况下为createUser方法)上,您应该添加注释 @CachePut(value = "user", key = "#user.id")

类似的东西:

@CachePut(value = "user", key = "#user.id")
public User createUser(User user) { 
   // store user in db...
}

尝试上面的代码。

答案 2 :(得分:0)

在创建新项目时使用@CachePut。

您可以参考@CachePut和@Cacheable之间的区别: Spring Cacheable vs CachePut?