Spring缓存支持

一 点睛

Spring定义了CacheManager和Cache接口用来统一不同的缓存的技术。

CacheManager:Spring提供的各种缓存技术抽象接口。

Cache:包含缓存的各种操作(增加、删除、获得缓存)。

二 Spring支持的CacheManager

针对不同的缓存技术,需要实现不同的CacheManager,Spring定义的CacheManager实现如下:

  • SimpleCacheManager:使用简单的Collection来存储缓存,主要用来测试用途

  • ConcurrentMapCache:使用ConcurrentMap来存储缓存

  • NoOpCacheManager:仅测试用途,不会实际存储缓存

  • EhCacheCacheManager:使用EhCache作为缓存技术

  • GuavaCacheManager:使用Google Guava的GuavaCache作为缓存技术

  • HazelcastCacheManger:使用Hazelcast作为缓存技术

  • JCacheCacheManager:支持JCache(JSR-107)标准的实现作为缓存技术,如Apache Commons JCS

  • RedisCacheManager:使用Redis作为缓存技术

在我们使用任意一个实现的CacheManager的时候,需注册实现的CacheManager的Bean,例如

@Bean
public EhCacheCacheManager cacheManager(CacheManager ehCacheCacheManager){
    return new EhCacheCacheManager(ehCacheCacheManager);
}

当然,每种缓存技术都有很多的额外配置,但配置CacheManager是必不可少的。

三 声明式缓存注解

Spring提供了4个注解来声明缓存规则。这4个注解的说明如下:

  • @Cacheable:在方法执行前Spring先查看缓存中是否有数据,如果有数据,则直接返回缓存数据;若没有数据,调用方法并将方法的的返回值放进缓存。

  • @CachePut:无论怎样,都会将方法的返回值放到缓存中。@CachePut的属性与@Cacheable保持一致。

  • @CaheEvict:将一条或多条数据从缓存中删除。

  • @Caching:可以通过@Caching注解组合多个注解策略在一个方法上。

@Cacheable、@CachePut、@CaheEvict都有value属性,指定的是要使用缓存名称;key属性指定的是数据在缓存中的存储的键。

四 开启声明式缓存支持

开启声明式缓存支持方法:只需在配置类上使用@EnableCaching即可,伪代码如下:

@Configuration
@EnableCaching
public class AppConfig{
    
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值