Springboot缓存 注解@CachePut,@Cacheable,@CacheEvict @EnableCaching,的作用及用法。

Spring Boot 中提供了三个注解来支持缓存功能,分别是:

@CachePut@Cacheable、和 @CacheEvict

@CachePut 

@CachePut 注解表示在方法执行之后,将结果缓存起来。它通常用于新增或更新操作,并将操作结果缓存起来。该注解的参数包括 value,是缓存名称,和 key,表示缓存的 key 值。例如:

 

在这个例子中,我们将使用名为 books的缓存来存储用户对象。缓存 key 的值是书籍的 ID。当使用 createUser() 方法创建书籍时,会将方法的返回值缓存起来。

 @Cacheable

 @Cacheable 注解表示先从缓存中查找数据,如果查找到,则直接返回缓存中的数据,否则执行方法并将结果缓存起来。该注解的参数包括 value,是缓存名称,和 key,表示缓存的 key 值。例如:

在这个例子中,我们使用名为 books的缓存来存储书籍对象。当调用 getBookById() 方法查找书籍时,首先尝试从缓存中查找与 id 对应的数据。如果成功查找到,则直接返回缓存中的数据;否则执行方法,并将方法的返回值缓存起来。

 @CacheEvict

 @CacheEvict 注解表示删除缓存中的数据。该注解的参数包括 value,是缓存名称,和 key,表示缓存的 key 值。例如:

 

 在这个例子中,我们使用名为 books的缓存来存储书籍对象。当调用 deleteBookById() 方法删除书籍时,会将缓存中与 id 对应的数据删除掉。

@EnableCaching

它用于开启缓存功能,通过作用于缓存配置类或Spring Boot启动类上,从而使得Spring应用能够利用缓存进行优化。

在原理上,Spring的缓存功能主要是通过AOP(面向切面编程)实现的。通过在需要使用缓存的Bean上创建代理对象,代理对象在目标方法执行时能够拦截方法的执行,从而实现缓存功能。

具体来说,当一个标注了@EnableCaching的配置类或启动类启动时,Spring会创建一个代理对象,该代理对象会包含一个拦截器。拦截器的主要任务是在目标方法执行前后拦截并处理缓存相关的操作。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值