错误信息如下:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jedisClientPool' defined in class path resource [spring/applicationContext-redis.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'jedisPool' of bean class [cn.e3mall.common.jedis.JedisClientPool]: Bean property 'jedisPool' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
spring 的xml配置如下:
<!-- 连接redis单机版 -->
<bean id="jedisClientPool" class="cn.e3mall.common.jedis.JedisClientPool">
<property name="jedisPool" ref="jedisPool"></property>
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="192.168.25.128"/>
<constructor-arg name="port" value="6379"/>
</bean>
解决办法:
仔细看错误信息可以发现 “Bean property 'jedisPool' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?”,从中可以了解到的是jsdisPool缺少set、get方法导致,在“jedisClientPool”中添加“jsdisPool”的set、get方法就能解决了。