@Cacheable注解
时间: 2023-06-30 11:21:00 浏览: 106
@Cacheable注解是Spring Framework中用来标记一个方法的返回值应该被缓存起来的注解。该注解可以用在Service层或DAO层的方法上,标记查询数据库的方法的返回值应该被缓存。
使用@Cacheable注解可以大大提高应用的性能,因为缓存可以减少数据库的访问次数,从而减少系统的负载。当一个带有@Cacheable注解的方法被调用时,Spring会先从缓存中查找数据,如果缓存中存在数据,则直接返回缓存中的数据,否则才会执行方法中的逻辑,查询数据并将其存入缓存中。
需要注意的是,在使用@Cacheable注解时需要配置缓存管理器,并将缓存管理器注入到Service或DAO对象中。此外,还需要指定缓存的名称和缓存的Key,以便在缓存中存储和查找数据。
示例代码:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Autowired
private CacheManager cacheManager;
@Override
@Cacheable(value = "userCache", key = "#id")
public User getUserById(int id) {
return userDao.getUserById(id);
}
@Override
public void updateUser(User user) {
userDao.updateUser(user);
cacheManager.getCache("userCache").evict(user.getId());
}
}
```
在上面的示例代码中,getUserById方法上使用了@Cacheable注解,表示查询用户信息时应该被缓存。其中value属性指定了缓存的名称为"userCache",key属性指定了缓存的Key为方法的参数id。在updateUser方法中,如果更新了用户信息,则需要将缓存中的数据删除,以便下次查询时可以重新从数据库中查询数据并存入缓存。
阅读全文