使用spring注入时出现 XXX is not writable or has an invalid setter method

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用spring注入时出现 XXX is not writable or has an invalid setter method相关的知识,希望对你有一定的参考价值。

在applicationContext-redis.xml中定义

<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>

 结果,运行时出错:

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?

......

......

......
Caused by: 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?
.......

.......

其中,“Bean property ‘esyerDao‘ is not writable or has an invalid setter method”就是关键错误

原来,需要在JedisClientPool中定义set和get方法。

 

public void setJedisPool(JedisPool jedispool){
  this.jedisPool = jedispool;
 }
 public JedisPool getJedisPool(){
    return jedisPool;
 }

补充,大小写是有严格区分的, <property name="JedisPool" ref="JedisPool"/> 和  <property name="jedisPool" ref="jedisPool"/>是不一样的,对于name="jedisPool",在JedisClientPool中定义set和get方法就要用小写的setjedisPool和getjedisPool:
  public void setjedisPool(JedisPool jedispool){
  this.jedisPool = jedispool;
 }
 public JedisPool getjedisPool(){
    return jedisPool;
 }

参考地址:http://deswork.blog.163.com/blog/static/1638466472010910103523736/




















以上是关于使用spring注入时出现 XXX is not writable or has an invalid setter method的主要内容,如果未能解决你的问题,请参考以下文章

执行远程命令时出现 SSH 错误:“stdin: is not a tty”

尝试连接到 MySQL 数据库时出现“db is not defined”错误[关闭]

执行多个查询时出现“TypeError: NoneType is not subscriptable”

使用 Spring 注入 bean 时出现 nullPointerException

在 Flutter 中的 MaterialPageRoute 之后尝试 showDialogue 时出现“'context != null': is not true”错误?

Spring配置文件标签报错:The prefix "XXX" for element "XXX:XXX" is not bound. .