2016-07-08 92 views
1

如何創建高速緩存密鑰,如果我有未知長度的字符串數組像定義緩存鍵用於高速緩存在彈簧

String[] name = new String[2]{"Ramesh","Suresh"}; 

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

參數如果我通過字符串數組方法getSurName,如何定義的關鍵爲了它。請注意,數組的大小是未知的。

回答

0

最後,我能夠使用Spring的自定義密鑰生成器支持來解決這個問題。我所做的就是,創建了一個名爲cacheKeyGenearator並分配一個類來它豆,這是實現的KeyGenerator,如:

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的一部分,我這樣做:

<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 
    }