我最近在做一个项目,在仓库这个模块,我打算在第一次查询的时候,把所有的仓库数据全部存储起来,后面查询的时候就直接返回缓存就可以了。
在执行修改仓库操作的时候,顺便修改缓存。但是,我想这个时候如果出现了异常,springboot回滚了事务,但是缓存却被修改了。
所以,我想问有没有什么解决办法。我想的是,springboot有没有什么处理异常的方式

我最近在做一个项目,在仓库这个模块,我打算在第一次查询的时候,把所有的仓库数据全部存储起来,后面查询的时候就直接返回缓存就可以了。
在执行修改仓库操作的时候,顺便修改缓存。但是,我想这个时候如果出现了异常,springboot回滚了事务,但是缓存却被修改了。
所以,我想问有没有什么解决办法。我想的是,springboot有没有什么处理异常的方式

在方法上使用 @Cacheable 注解,注解里可以设置条件,一般是判断方法返回成功,满足这个条件才更新注解。
通常是查询方法上使用这个注解,查询成功的结果放入缓存。修改方法上使用 @CachePut 更新缓存,也可以和删除方法一样,使用 @CacheEvit 驱逐缓存。同样可以设置条件,方法执行成功才执行相应的缓存动作。
开启缓存功能需要在启动类上使用 @EnableCaching 注解。缓存条件使用SPEL表达式。