新建了第一个springboot项目,连接数据库成功,浏览器访问ok
了解了Spring cache的三个注解:
@Cacheable(value="userCache"),当调用这个方法时,先查询userCache这个cache, 如果没有,则执行方法,并将结果存入缓存,这里缓存的key为默认的方法参数mobile, value就是user对象了。
@Cacheable(value="user")
public User getUser(String mobile) {
return userDao.getUser(mobile);
}
@Cacheable(value="userCache", condition="#username.length() <= 5)
public User getUserByUsername(String username) {
}
@CacheEvict当加了这个注解的方法, 默认行为是方法被调用后,会清空缓存,要是抛出异常,则不清空缓存。
@CacheEvict(value=“userCache”, key="#account.getMobile()") //清空userCache缓存
public void deleteUser(User user){
userDao.delete(user);
}
@CacheEvict(value=“userCache”, allEntries=true) // 清空所有userCache缓存
public void reload() {
}@CacheEvict(value=“userCache”, beforeInvocation=true) // 先清空所有userCache缓存,哪怕方法抛异常跟它也没关系。
public void reload() {
}
@CachePut, 标记这个注解的方法被执行,同时方法返回值也会记录到缓存中,实现缓存与数据库同步更新。
@CachePut(value=“userCache”, key="#user.getMobile()")
public User updateUser(User user) {
//update
}
网友评论