Java 使用SpEL复制bean的引用不起作用

Java 使用SpEL复制bean的引用不起作用,java,spring,spring-el,spelevaluationexception,beancreationexception,Java,Spring,Spring El,Spelevaluationexception,Beancreationexception,我一直在用弹簧做实验。我希望通过使用SpEL为另一个bean复制bean的值和引用属性 考虑这个bean: <bean id="kenny" class="com.springinaction.springidol.Instrumentalist"> <property name="song" value="#{'Jingle Bells'}" /> <property name="instrument" ref="piano" /> &l

我一直在用弹簧做实验。我希望通过使用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>


ref
是对另一个bean的引用;在本例中,您希望使用
kenny
bean的
instrumemt
属性的值

你应该使用

 <property name="instrument" value="#{kenny.instrument}" />


这假设在
Instrumentalist

上有一个
getInstrument()
方法
ref
是对另一个bean的引用;在本例中,您希望使用
kenny
bean的
instrumemt
属性的值

你应该使用

 <property name="instrument" value="#{kenny.instrument}" />


这假设在
Instrumentalist

上有一个
getInstrument()
方法,谢谢它能工作。我之所以添加引用,是因为kenny引用的工具也是一个bean;在解析时,该关联将丢失-您可以使用
ref=“piano”
value=“#{kenny.instrument}
。谢谢。我之所以添加引用,是因为kenny引用的工具也是一个bean。kenny属性的源是一个bean并不重要;在解析时,该关联将丢失-您可以使用
ref=“piano”
value=“#{kenny.instrument}