首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为spring中的缓存定义缓存键

为spring中的缓存定义缓存键
EN

Stack Overflow用户
提问于 2016-07-08 19:36:54
回答 1查看 901关注 0票数 2

如果我有未知长度的字符串数组作为参数,我如何创建缓存键

代码语言:javascript
代码运行次数:0
运行
复制
    String[] name = new String[2]{"Ramesh","Suresh"};

    @cacheable(value="cacheStorage", key="#????")
    public void getSurName(String[] name){}

如果我将字符串数组传递给getSurName方法,如何定义它的键。注意,数组的大小是未知的。

EN

回答 1

Stack Overflow用户

发布于 2016-07-19 14:22:28

最后,我使用Spring支持的自定义密钥生成器解决了这个问题。我所做的是,创建了一个名为cacheKeyGenearator的bean,并为它分配了一个类,它实现了KeyGenerator,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
    public class CacheKeyGenerator implements KeyGenerator
    {
       @override
       public String generate(final Object target, final Method method, final Object... params)

      String key = "";
       // my code to configure key using different params
     return key;
     }  

对于xml部分,我这样做了:

代码语言:javascript
代码运行次数:0
运行
复制
    <cache:annotation-driven key-generator= "cacheKeyGenerator">
    <bean id ="cacheKeyGenerator" class ="com.cache.bean"/>

    //on my service level 
    @CacheConfig(keyGenerator="com.cache.bean")
    public class cacheServiceImpl implements cacheService
    {
     @overide
     @Cacheable(value="cacheStore")
     public String getSurName(String[] name) 
     // my code
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38265662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档