最后,我能够使用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
}