使用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/

时间: 2024-10-12 01:51:50

使用spring注入时出现 XXX is not writable or has an invalid setter method的相关文章

Bean property &#39;xxx&#39; is not writable or has an invalid setter method

出现此问题的原因是在ApplicationContext.xml中配置有问题,里面的bean的属性名称用 与 注入的类名称不一致 applicationContext.xml <bean id="testdao" class="com.tre.daoImpl.UserDaoImpl"> </bean> <bean id="testservice" class="com.tre.serviceImpl.Use

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

在web-application-config.xml中定义 <bean id="employeeServiceDest" class="com.service.EmployeeServiceImpl">      <flex:remoting-destination />    <property name="EsysDao" ref="EsysDao"/> </bean> 结

spring注入静态成员变量提示invalid setter method

果然还是不够细心啊,被坑一晚上.. 一个极其简单的小程序,但是需要通过xml文件配置注入一个值,唯一的特别是要注入的属性是类中的静态成员变量.. 如下,然后自动生成get和set方法..坑就从此开始了... public class Food{ private static String desc; public static String getDesc(){ return desc; } public static void setDesc(String desc){ Food.desc =

JSP中使用Spring注入的Bean时需要注意的地方

遇到问题 遇到一个问题:在JSP中,使用Spring注入的Bean对象时,未能正确地获取到想要的对象. 郁闷的是,它也没报错. 研究问题 使用DEBUG功能(好久不在JSP里写Java代码了,都忘了JSP也可以打断点调试),跟踪了一下代码,发现确实有了我想使用的类的实例,不过是个代理类. 想到反射.代理相关的知识,貌似知道问题在哪了. 赶紧试了一下,果然…… 解决 在JSP里你要获得的Bean对象的类型,要定义成接口类,而不是实现类. 当然,这也视情况而定,我不确定,在JSP里使用Spring注

spring注入时报错::No qualifying bean of type &#39;xxx.xxMapper&#39;

做一个小项目,因为有 baseService,所以偷懒就没有写单独的每个xxService接口,直接写的xxServiceImpl,结果在service实现类中注入Mapper的时候,用的 @Autowired, 结果,junit一启动,就报错误:Java.lang.illegalStateException:Failed to load ApplicationContext 具体是在 创建bean的时候报:No qualifying bean of type 'xxx.xxMapper' ab

struts2与spring集成时,关于class属性及成员bean自动注入的问题

正常来说按照Spring官方配置,在struts2与spring整合时,struts配置文件中class属性指向spring配置的bean id,但是在class指向类路径时,依然能注入service. public class LoginAction extends ActionSupport{ private LoginService loginService; public void setLoginService(LoginService loginService) { System.o

spring autowired时发生异常情况

spring beanFactory那些就不说了,这次发生这个异常纠结好了好久,网上找了很多资料看,终于发现问题. 自动装配bean注入的时候,如果Spring配置定义了aop声明式事务,类似如下方式 <aop:config>  <aop:pointcut id="serviceMethods2"   expression="execution(public * net.villion.framework..*(..))" />  <a

Spring注入aspectJ切面

1.用关键字aspect即可声明一个切面如:                    切面定义完毕,可以发现,pointcut被当做一个类型,指定切点还是用execution表达式:after()和returning()也被当做一个类型来声明一个通知 2.在JudgeAspect中有一个CriticismEngine类型的成员变量,为了实现对象间的松耦合,我们在aspectJ中使用Spring的依赖注入来为JudgeAspect注入CriticismEngine对象.首先将CriticismEng

模拟spring注入

尊重原创:原创和源代码地址 项目中的的spring出现问题,不想使用spring框架进行注入,编写一个简单的spring,实现xml解析和类的注入.所有的框架都可以用java项目,用到了java提供的基础类,所以用到的原理也就呢么多(我刚开始工作2个月,说的不对请谅解).因此spring用到了注入用到java中的反射机制,aop用到了java的代理机制proxy对象.总结一下自己的设计: 设计范围三层: 第一层是实体层,根据自己定义的xml规则抽象除了两个对象实体,一个是实体对象bean(程序中