Java 创建新项时的Spring缓存

Java 创建新项时的Spring缓存,java,spring,caching,Java,Spring,Caching,我使用item ID来标识缓存数据,如下所示: @CachePut(value = "users", key = "#p0.id") @RequestMapping(value = "/user", method = RequestMethod.PUT) public User updateUser(@RequestBody User user); 函数创建新项目后返回项目ID。创建新项目后,如何将项目保存到缓存中 @Cacheable(value = "users", key = "???"

我使用item ID来标识缓存数据,如下所示:

@CachePut(value = "users", key = "#p0.id")
@RequestMapping(value = "/user", method = RequestMethod.PUT)
public User updateUser(@RequestBody User user);
函数创建新项目后返回项目ID。创建新项目后,如何将项目保存到缓存中

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

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

我建议创建服务类并将所有这些方法放在其中。 同样在store方法(在您的例子中是createUser方法)上,您应该放置注释
@CachePut(value=“user”,key=“#user.id”)

大概是这样的:

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

尝试上面的代码。

在创建新项目时使用@CachePut

有关@CachePut和@Cacheable之间的差异,您可以参考以下内容: