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>