如何为Spring Cache设置自定义KeyGenerator?
我正在使用Spring 3.1,我想使用新的缓存function。 然后,我试过:
但我没有找到配置我的自定义KeyGenerator的方法。 任何想法?
在Spring 3.1 RC1中有一种更好的方法:
import org.springframework.cache.interceptor.KeyGenerator; public class MyKeyGenerator implements KeyGenerator { public Object generate(Object target, Method method, Object... params) { }}
截至今天,只需从下载弹簧时获得的jar文件中删除org.springframework.context.support-3.1.0.RC1.jar \ org \ springframework \ cache \ config \ spring-cache-3.1.xsd,它就可以正常工作精细。
好的,我只是想办法做到这一点……
正如你所看到的,我使用AnnotationDrivenCacheBeanDefinitionParser,我把配置放在我的xml中,它工作正常:)完成!
编辑:
对于Spring> 3.2,您可以使用实现CachingConfigurer的简单Java类配置:
@EnableCaching(mode = AdviceMode.ASPECTJ) public class CacheConfig implements CachingConfigurer { public KeyGenerator keyGenerator() { return new ReflectionBasedKeyGenerator(); } public CacheManager cacheManager() { return new RedisCacheManager(redisCacheTemplate); } }
我遇到了Spring Frameworks默认的Cache KeyGenerator的问题。 它似乎经常遇到冲突,似乎已经记录在这个问题上
我知道这个问题已被标记为已回答,但我想我会分享我是如何解决这个问题的…
基本上,我们创建并使用了我们自己的Cache KeyGenerator来代替默认的。