1.在SpringBoot的启动类上加上
@EnableCaching 这个注解, 说明,这个应用开启了基于注解的缓存
2.在需要缓存的类上加上@cacheable 这个注解,
3.在这个注解的参数上给其意义如下给这个缓存起名名字就为这个数据库的表名:
@Cacheable(value= "User")
@Cacheable(cacheNames = "User",key="#id")
====================================================
@Cacheable(value = "User") public User getUser(Integer id) { System.out.println("in"); User user = userMapper.selectById(1); return user; }
key的值默认值是和方法的参数名是一样的,
4.另外一个注解 (既调用方法,又更新缓存)
修改了数据库的某一个数据,同时更新缓存
@CachePut(value="User",key="#result.id")
@CachePut(value = "User", key = "#result.id") /*更新员工*/ public User updateUser(User user) { System.out.println("员工更新"); userMapper.updateById(user); return user; }
参数的解释:
value :名字
key:将查询后的数据放入到缓存中间去(就是更新上面@Cacheable那个以key的值以id缓存的值)
将更新后的值放回到缓存中去
/*清除缓存*/ //allEntries 清除User下面的所有缓存 @CacheEvict(value = "User", allEntries = true, key = "#id") public void delete() { System.out.println("true"); }
总结:缓存的添加,@Cacheable
缓存的更新;@CachePut
缓存的删除@cacheEvict
缓存的公共配置
@Caching(
cacheable = {
@Cacheable(value = "User", key = "#id"),
},
put = {
@CachePut(value = "User", key = "#result.age"),
@CachePut(value = "User", key = "#result.id"),
}
)
/*抽取缓存的公共配置*/
//这是类上的注解
@CacheConfig(cacheNames = "User")