@Cacheable 更新
时间: 2023-10-16 10:10:08 浏览: 65
@Cacheable 注解用于将方法的返回值缓存起来,在下一次调用该方法时,如果输入参数相同,则可以直接从缓存中获取结果,而无需再次执行该方法。当我们需要频繁调用某个方法且该方法的计算成本较高时,使用缓存可以有效地提高性能。
更新缓存可以使用 @CachePut 注解,它可以让方法的返回值更新缓存中的值。与 @Cacheable 不同的是,@CachePut 注解会执行方法体,而不是直接从缓存中获取结果。
下面是一个使用 @Cacheable 和 @CachePut 的示例:
```java
@Service
public class UserService {
@Autowired
private UserDao userDao;
@Cacheable(value = "userCache", key = "#id")
public User getUserById(int id) {
return userDao.selectUserById(id);
}
@CachePut(value = "userCache", key = "#user.id")
public void updateUser(User user) {
userDao.updateUser(user);
}
}
```
在上面的示例中,getUserById 方法会根据传入的 id 参数从数据库中查询对应的 User 对象,并将其缓存起来。updateUser 方法会更新数据库中的 User 对象,并使用 @CachePut 注解将更新后的 User 对象缓存起来。注意,@CachePut 注解要求方法的返回值类型与缓存中的数据类型相同,否则会导致类型转换错误。
阅读全文