【发布时间】:2013-07-04 14:00:15
【问题描述】:
我一直在尝试使用 Spring。我希望通过使用 SpEL 为另一个 bean 复制一个 bean 的值和引用属性。
考虑这个 bean:
<bean id="kenny" class="com.springinaction.springidol.Instrumentalist">
<property name="song" value="#{'Jingle Bells'}" />
<property name="instrument" ref="piano" />
</bean>
我希望将其值复制到另一个bean中,如下所示:
<bean id="carl" class="com.springinaction.springidol.Instrumentalist">
<property name="song" value="#{kenny.song}" />
<property name="instrument" ref="#{kenny.instrument}" /> <-- I GET EXCEPTION OVER HERE
</bean>
但是,我对第二个属性有一个例外,因为它无法复制肯尼的仪器。歌曲被正确复制,没有抛出任何异常
我得到了这个例外:
线程“main”中的异常 org.springframework.beans.factory.BeanCreationException:错误 创建在类路径资源中定义的名称为“carl”的bean [Beans.xml]:无法解析对 bean '#{kenny.instrument}' 的引用 同时设置 bean 属性“仪器”;嵌套异常是 org.springframework.beans.factory.BeanExpressionException:表达式 解析失败;嵌套异常是 org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 6): 找不到字段或属性“仪器” 'com.springinaction.springidol.Instrumentalist' 类型的对象
知道如何复制仪器并将其设置为 id 为“carl”的 bean 吗?
【问题讨论】:
标签: java spring spring-el spelevaluationexception beancreationexception