- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Spring Data Redis(版本:1.1.x)为我的 Redis 客户端(生菜客户端版本:2.3.3)设置一个连接工厂,但在将所有内容连接在一起时遇到了一些麻烦。
这是我的配置:application-context-redis.xml
<bean id="lettuceConnectionFactory"
class="org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory">
<constructor-arg index="0" ref="redisPool"/>
</bean>
<bean id="redisPool"
class="org.springframework.data.redis.connection.lettuce.DefaultLettucePool">
<constructor-arg index="0" value="${redis.host}" />
<constructor-arg index="1" value="${redis.port}"/>
<constructor-arg index="2" ref="#{redisPoolConfig.Config}"/>
</bean>
<bean id="redisPoolConfig" class="org.apache.commons.pool.impl.GenericObjectPool"
p:maxActive="${redis.maxActive}"
p:maxIdle="${redis.maxIdle}"
p:minIdle="${redis.minIdle}"
p:maxWait="${redis.maxWait}"
p:testOnBorrow="${redis.testOnBorrow}"
p:testOnReturn="${redis.testOnReturn}"
p:testWhileIdle="${redis.testWhileIdle}"
p:whenExhaustedAction="${redis.whenExhaustedAction}"
p:timeBetweenEvictionRunsMillis="${redis.timeBetweenEvictionRunsMillis}"
p:numTestsPerEvictionRun="${redis.numTestsPerEvictionRun}"
p:softMinEvictableIdleTimeMillis="${redis.softMinEvictableIdleTimeMillis}"
p:minEvictableIdleTimeMillis="${redis.minEvictableIdleTimeMillis}"/>
/>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
p:connectionFactory-ref="lettuceConnectionFactory"/>
这是 redisPool bean 的构造函数签名:
public DefaultLettucePool(String hostName, int port, Config poolConfig) {
this.hostName = hostName;
this.port = port;
this.poolConfig = poolConfig;
}
poolConfig 属性是一个公共(public)内部静态类:org.apache.commons.pool.impl.GenericObjectPool.Config
由于配置属性is a static inner class (see here)并且不包含 getter 方法,我很难尝试将其注入(inject)到 redisPool bean 中。
这是我收到的错误:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisPool' defined in class path resource [application-context-redis.xml]: Cannot resolve reference to bean '#{redisPoolConfig.Config}' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 16): Field or property 'Config' cannot be found on object of type 'org.apache.commons.pool.impl.GenericObjectPool'
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:329)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107)
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:615)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1045)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:949)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
... 72 more
Caused by: org.springframework.beans.factory.BeanExpressionException: Expression parsing failed; nested exception is org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 16): Field or property 'Config' cannot be found on object of type 'org.apache.commons.pool.impl.GenericObjectPool'
at org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:142)
at org.springframework.beans.factory.support.AbstractBeanFactory.evaluateBeanDefinitionString(AbstractBeanFactory.java:1312)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.evaluate(BeanDefinitionValueResolver.java:225)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:312)
... 84 more
最佳答案
Spring Data Redis 附带了方便的 org.apache.commons.pool.impl.GenericObjectPool.Config 包装器,它基本上可以让您解决您遇到的问题如上所述。
<bean id="lettuceConnectionFactory "
class="org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory">
<constructor-arg index="0" ref="lettucePool" />
</bean>
<bean id="lettucePool" class="org.springframework.data.redis.connection.lettuce.DefaultLettucePool">
<property name="hostName" value="${redis.host}" />
<property name="port" value="${redis.port}" />
<property name="poolConfig" ref="lettucePoolConfiguration" />
</bean>
<bean id="lettucePoolConfiguration" class="org.springframework.data.redis.connection.PoolConfig">
<property name="maxIdle" value="${redis.maxIdle}" />
<property name="maxActive" val...
</bean>
关于java - 尝试连接 Lettuce 连接工厂时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26893909/
我需要使用 Azure Redis 集群、密码、SSL 以及管道支持。 到目前为止我一直在使用 Jedis,但它缺乏对集群+ssl+密码+管道组合的支持。 我尝试了生菜 ( https://githu
我试图让 Lettuce 在旧主机失败后连接到新晋升的主机(前奴隶)。但是所有写入都停止了。故障主机重新连接后,写入继续,现在作为从属主机。并且它继续写信给新的主人(以前的奴隶)。 我尝试设置定期拓扑
在我的服务中,我尝试使用 Lettuce 客户端的 ReadFrom 方法确保强一致性。我正在写作,然后进行阅读。在客户端配置中,我已将 ReadFrom 设置为 SLAVE_PREFFERED。 L
本文整理了Java中io.lettuce.core.ZStoreArgs类的一些代码示例,展示了ZStoreArgs类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Mav
我正在尝试使用 Spring Data Redis(版本:1.1.x)为我的 Redis 客户端(生菜客户端版本:2.3.3)设置一个连接工厂,但在将所有内容连接在一起时遇到了一些麻烦。 这是我的配置
我喜欢使用 Lettuce 来定义测试用例。在许多情况下,很容易编写 Lettuce 场景,使其可以原子方式运行或作为功能中其他场景的一部分运行。然而,我发现 Lettuce 也是一个有用的工具,可以
我们已经定义了 Lettuce 客户端连接工厂,以便能够连接到定义自定义套接字和命令超时的 Redis: @Bean LettuceConnectionFactory lettuceConnectio
前提:搭建好redis集群环境,搭建方式请看:http://www.zzvips.com/article/29914.html 1. 新建工程,pom.xml文件中添加redis支持
需要使用lettuce在redis-cluster模式下运行一批命令。对于应该在一个分区中运行的命令,我希望在一个节点中顺序运行它们。 据我所知,Lettuce 可以通过将 AutoFlushComm
有经验的人可以同时使用这两种方法吗 Lettuce和 Pyccuracy描述它们在功能和用途方面的差异? 来自Lettuce Overview文档: Lettuce is a very simple
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 9 年前。 Improve t
尝试运行简单的生菜测试场景(来自 here )。我得到这些: Traceback (most recent call last): File "C:\Python27\lib\site-packa
我正在学习 Redis for Java 是我认为我真正缺少的关于 Redis api 的东西。 假设我们有以下用于创建连接的代码: RedisClient redisClient = RedisCl
redisListCommands.brpop(0, queueName) 我已将超时设置为 0(即没有超时)。为什么这命令带来 io.lettuce.core.RedisCommandTimeout
我正在尝试查找有关如何配置和使用 Lettuce 的引用资料具有客户端一致性哈希的 Redis 客户端。 这种分片方法在 ShardedJedis 中实现来自 Jedis 客户端并在 Redis pa
我可以使用 Lettuce 管理 redis 通知吗?我找不到任何示例或文档。当元素在 Redis 中过期时,我只需要在我的 Java 代码中有一些通知/回调。 让我举个例子...对不起,阅读 Let
我在 Akka 中使用 redis,所以我不需要阻塞调用。生菜内置了异步 future 调用。但是 Jedis 是 Redis 推荐的客户端。有人可以告诉我我是否以正确的方式使用它们。如果是的话,哪个
本文整理了Java中io.lettuce.core.ZStoreArgs.sum()方法的一些代码示例,展示了ZStoreArgs.sum()的具体用法。这些代码示例主要来源于Github/Stack
本文整理了Java中io.lettuce.core.ZStoreArgs.max()方法的一些代码示例,展示了ZStoreArgs.max()的具体用法。这些代码示例主要来源于Github/Stack
本文整理了Java中io.lettuce.core.ZStoreArgs.()方法的一些代码示例,展示了ZStoreArgs.()的具体用法。这些代码示例主要来源于Github/Stackoverfl
我是一名优秀的程序员,十分优秀!