欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用@Cacheable缓存解决双冒号::的问题

程序员文章站 2022-03-24 08:07:09
目录@cacheable缓存解决双冒号::cacheable的使用总结常规使用方法@cacheable缓存解决双冒号::使用spring-data-redis2.x版本时,@cacheable缓存ke...

使用spring-data-redis2.x版本时,@cacheable缓存key值时默认会给vlue或cachenames后加上双引号

使用@Cacheable缓存解决双冒号::的问题

通过配置进行修改即可满足项目需求

@configuration
public class springcacheconfig{
    @bean
    public cachemanager cachemanager(lettuceconnectionfactory lettuceconnectionfactory){        
        rediscacheconfiguration config = rediscacheconfiguration.defaultcacheconfig()        
                .entryttl(duration.ofhour(1)                
                //变双冒号为单冒号
                .computeprefixwith(name - >":")                
                .serializekeyswith(redisserializationcontext.serializationpair.fromserializer(new stringredisserializer()))                
                .serializevalueswith(redisserializationcontext.serializationpair.fromserializer(new genericjackson2jsonredisserializer()))    
                .disablecachingnullvalues();                
        rediscachemanager cachemanager = rediscachemanager.rediscachemanagerbuilder        
                .fromconnectionfactory(lettuceconnectionfactory)                
                .cachedefaults(config)                
                .transactionaware()                
                .build();
        return cachemanager;    
    }
    ...其他配置
}

cacheable的使用总结

@cacheable(value = "person",key = "#tagid+'_'+#zz")
public list<person> getpersonbytagid(long tagid,string zz)

其中value表示该方法返回的参数的缓存存在那个cache里(即为缓存块的名字)

缓存结果以一个键值对存放在缓存中,注解中key即为键值对的key;value即为方法返回的结果

key用双引号,里面#加上方法的参数:获取方法的参数,  ''表示在参数之间添加分隔符

常规使用方法

在springboot的启动类上使用@enablecaching//开启缓存

在方法上直接使用@cacheable()使用缓存

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。