新建了第一個springboot項目,連接數(shù)據(jù)庫成功棠绘,瀏覽器訪問ok
了解了Spring cache的三個注解:
@Cacheable(value="userCache"),當(dāng)調(diào)用這個方法時,先查詢userCache這個cache, 如果沒有再扭,則執(zhí)行方法氧苍,并將結(jié)果存入緩存,這里緩存的key為默認(rèn)的方法參數(shù)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當(dāng)加了這個注解的方法, 默認(rèn)行為是方法被調(diào)用后,會清空緩存罢荡,要是拋出異常赡突,則不清空緩存。
@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緩存,哪怕方法拋異常跟它也沒關(guān)系笼才。
public void ?reload() {
}
@CachePut, 標(biāo)記這個注解的方法被執(zhí)行漱受,同時方法返回值也會記錄到緩存中,實現(xiàn)緩存與數(shù)據(jù)庫同步更新骡送。
@CachePut(value=“userCache”拜效, key="#user.getMobile()")?
public User updateUser(User user) {
? ? ?//update
}