Spring Boot 中快速集成Spring Cache和Caffeine做内存缓存

Spring Boot 中集成使用 Spring Cache和Caffeine做内存缓存

之前已经简单介绍过Caffeine的使用了,可以参考我之前的博文:Java高性能本地缓存框架Caffeine

今天来学习一下在Spring Boot中如何使用Spring Cache来快速集成Caffeine

添加依赖

加入spring cache和caffeine的依赖

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.ben-manes.caffeine</groupId>
            <artifactId>caffeine</artifactId>
        </dependency>

添加配置

注意千万不要漏了@EnableCaching

@Configuration
@EnableCaching
public class CacheConfig extends CachingConfigurerSupport {


    @Bean
    public CacheManager cacheManager() {
        CaffeineCacheManager cacheManager = new CaffeineCacheManager();
        cacheManager.setCaffeine(Caffeine.newBuilder()
                .initialCapacity(10)
                .maximumSize(100)
                .expireAfterAccess(10, TimeUnit.MINUTES));
        cacheManager.setAllowNullValues(true);
        return cacheManager;
    }


    @Bean
    @Override
    public KeyGenerator keyGenerator() {
        return (target, method, params) -> {
            StringBuilder sb = new StringBuilder();
            sb.append(target.getClass().getName());
            sb.append(":");
            sb.append(method.getName());
            for (Object obj : params) {
                sb.append(":").append(obj);
            }
            return String.valueOf(sb);
        };
    }
}

注解使用

需要在缓存的方法上加入注解@Cacheable(cacheNames = "xxxxxx") ,因为加上了KeyGenerator 的配置所以,key是根据KeyGenerator 来生成的,这里可以不写。

其他的注解使用请参照Spring Cache,或者可以参考我的另一篇博文关于Spring Cache Redis的集成,使用到的注解都是类似的。

参考:Spring Data Redis 使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值