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

2022-07-19,,,

目录

@cacheable缓存解决双冒号::

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

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

@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()使用缓存

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

《使用@Cacheable缓存解决双冒号::的问题.doc》

下载本文的Word格式文档,以方便收藏与打印。