Java 配置Springbean以重用它自己的属性?
我是Spring的新手,需要一个具有两个属性的bean——第二个属性是引用第一个属性的内联bean。大概是这样的:Java 配置Springbean以重用它自己的属性?,java,spring,Java,Spring,我是Spring的新手,需要一个具有两个属性的bean——第二个属性是引用第一个属性的内联bean。大概是这样的: <bean id="aBean" class="com.sample.Bean"> <property name="propertyOne" value="something" /> <property name="propertyTwo"> <bean class="com.sample.AnotherBe
<bean id="aBean" class="com.sample.Bean">
<property name="propertyOne" value="something" />
<property name="propertyTwo">
<bean class="com.sample.AnotherBean">
<property name="propertyThree" ref="propertyOne />
</bean>
</property>
</bean>
我能想到的唯一方法是为您的公共属性创建一个bean,并在bean
和AnotherBean
中引用此公共属性-您为什么不选择此选项
任何其他方法都不起作用,因为依赖关系图-aBean依赖于另一个Bean,因此AnotherBean
将在aBean
之前实例化,并且将无法引用子Bean属性
如果没有此依赖项,您可以使用Spring EL来引用属性:
<property name="propertyThree" value="${aBean.propertyOne}"/>
您可以将“propertyOne”创建为一个单独的bean。
从aBean和内联bean中引用它
<bean id="propertyOne" class="java.lang.String">
<constructor-arg><value>"blabla"</value></constructor-arg>
</bean>
<bean id="aBean" class="com.test.SimpleBean">
<property name="name" ref="firstProperty" />
<property name="newBean">
<bean class="com.test.OtherSimplwBean">
<property name="otherName" ref="propertyOne" />
</bean>
</property>
“布拉布拉”
感谢您的回复。不幸的是,正如我在问题中提到的,这将不是我的应用程序中的一个选项。这就是我解决问题的方法。我曾希望Spring提供一个更优雅的解决方案,但是,如果我正在开发的应用程序只有Spring的一半优雅,那么我就不会有这个问题。