0

Groovy と Spring を統合しようとしています。1 つの Bean では、リストをプロパティとして配置する必要がありますが、Bean 定義の前にリスト内の項目を定義する場合にのみ機能します。

将来のエラーを回避するために...コンテキストをコンパイルしてエラーを引き起こすメカニズムは何ですか?

Item.groovy は、フィールド String itemName を持つ単純な Bean です。

私の設定は

動かない

<lang:groovy id="handler" script-source="ItemHandlerImpl.groovy">
  <lang:property name="itemList">
    <list>
      <lang:groovy id="item1" script-source="Item.groovy">
        <lang:property name="itemName" value="name1" />
      </lang:groovy>
    </list>
  </lang:property>
</lang:groovy>

これはスローします

Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'itemName' of bean class [org.springframework.scripting.groovy.GroovyScriptFactory]: Bean property 'itemName' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
            at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1024)
                at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:900)
                at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:76)
                at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58)
                at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1358)
                ... 70 more

多くの試みの後、これは私の作業構成です

<lang:groovy id="item1" script-source="Item.groovy">
  <lang:property name="itemName" value="name1" />
</lang:groovy>

<lang:groovy id="handler" script-source="ItemHandlerImpl.groovy">
  <lang:property name="itemList">
    <list>
      <ref bean ="item1">
    </list>
  </lang:property>
</lang:groovy>
4

0 に答える 0