spring中缓存注解的正确使用

本文详细介绍了Spring中@CacheConfig、@Cacheable、@CachePut、@CacheEvict和@Caching等缓存注解的使用方法,强调了缓存在提升性能和避免数据库崩溃中的作用。并提醒注解应用的位置、自定义注解的使用,以及在查询、新增、更新和删除操作中的最佳实践,特别指出缓存一致性问题的重要性。
摘要由CSDN通过智能技术生成

写在前面的话

在开始spring中缓存注解的用法解析前,先了解一下缓存是什么以及为什么要用缓存

缓存是什么

这里所涉及到的缓存都是指的web中的缓存。就是当你请求数据时,会优先从缓存中获取,如果未命中(就是缓存不存在),才去请求访问数据库,获取到数据后将数据加入到缓存中。

为什么要用缓存

一个需要大量重复调用的请求,用户每次调用都会触发一个数据库读取操作,当用户越来越多、数据量越大越大的时候,请求的时间将会变长,数据库可能会崩溃,而且用户体验也不太好。这个时候缓存就可以上场了。

Spring中的cache注解

spring中一共提供了五个关于缓存的注解,下面来逐个分析。

注意:注解一定要加在service层的实现类上,而不是controller,也不是service的接口上

@CacheConfig

该注解只能用于类上面,主要用来配置一些公用的缓存配置,比如value(一般都是在@CacheConfig配置value)
例如:@CacheConfig(value = “usersService”)
如果在@CacheConfig配置了value,那么在方法级别的注解上都将不需要配置value,因为他们公用一个value。

@Cacheable

该注解用于标识方法需要缓存,能够对其结果进行缓存,这也就是通常意义上的缓存。
该注解还有另外三个参数:key、condition、unless

  • key:缓存名,所在命名空间内需唯一
    key可以不写,spring会使用默认策略生成,但在正确使用缓存时,我们还是需要自定义key(使用springEL表达式)。关于key的自定义,请参考Spring @Cacheable 的key生成
  • condition:根据参数控制是否需要进行缓存。(也是使用springEL表达式)
    例如:id 为3 的不缓存
    @
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值