我使用redis作为弹簧缓存实现。官方文档说我们应该像这样配置缓存管理器:
<!-- Old version -->
<bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager"
c:template-ref="redisTemplate">
当jedis的版本= 2.0.0和spring-data-redis的版本= 1.0.2.RELEASE时,它可以正常工作。
但是在更新版本中(例如jedis = 2.5.2和spring-data-redis = 1.3.4.RELEASE),上面的配置无效。相反,它抛出一个异常,说&#34; loadCaches不能返回一个空集合&#34;。 然后我引用它并再次搜索它,现在配置文件是这样的:
<!-- New Version -->
<bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager"
c:template-ref="redisTemplate">
<property name="cacheNames">
<map>
<bean id="someid" class="someclass" p:name="somename"/>
</map>
</property>
</bean>
现在它并没有抱怨空集合,而是关于初始化的其他事情。
所以这里还有另外两个问题:
我一直在为这个bean设置苦苦挣扎几天..你能帮帮我吗?提前致谢
答案 0 :(得分:0)
作为提示,请参阅org.springframework.cache.annotation.EnableCaching
注释。
其中讨论了CacheManager
界面及其工作原理。
快速“开始使用”,您需要指定要使用的缓存的名称(例如,当您使用@CacheConfig(cacheNames='...')
或@Cacheable(value = '...')
时。您正在创建要缓存的相关“事物”的逻辑分组,即:书籍,汽车,贷款等。
在BookService中,您可以使用@CacheConfig(cacheNames='Books')
。
希望有所帮助!
答案 1 :(得分:0)
我遇到了使用jedis和spring-data-redis的类似问题。我发现的一个发现是,spring-data-redis对于Jedis版本非常具体。就我而言, Spring-data-redis 1.5.0.RELEASE 与 Jedis 2.6.2 兼容。
对于您的情况,请参阅下面的链接,查找编译依赖项部分,您会发现 1.3.4.RELEASE 与 Jedis 2.4.1 兼容。我相信一旦您更改POM文件Jedis版本,您的问题就会得到解决。
http://mvnrepository.com/artifact/org.springframework.data/spring-data-redis/1.3.4.RELEASE