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

 結果,運行時出錯:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'employeeServiceDest' defined in ServletContext resource [/WEB-INF/web-application-config.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'esyerDao' of bean class [com.service.EmployeeServiceImpl]:

 Bean property 'esyerDao' 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”就是關鍵錯誤。

原來,需要在EmployeeServiceImpl中定義set和get方法。

  public void setEsysDao (EsysDao esysdao) {
     this.esyerDao= esysdao;
    }

    public EsysDao getEsysDao () {
        return esysDao;
    }

------------------------

補充,大小寫是有嚴格區分的, <property name="EsyerDao" ref="EsyerDao"/> 和  <property name="esyerDao" ref="EsyerDao"/>是不一樣的,對於name="esyerDao",在EmployeeServiceImpl中定義set和get方法就要用小寫的setesysDao和getesysDao:
  public void setesysDao(EsysDao esysdao) {
     this.esysDao= esysdao;
    }

    public EsysDao getesysDao() {
        return esysDao;
    }

-----------------------------------------------------------------

再補充,每個 <property name="xxxx"  ref="xxxxx"/> ,都必須在class中定義set和get方法。

一個都不能少,確實是個細緻的工作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章