Java 使用spring中方法返回的对象注入构造函数
在我的spring应用程序-config.xml中Java 使用spring中方法返回的对象注入构造函数,java,spring,spring-mvc,javabeans,Java,Spring,Spring Mvc,Javabeans,在我的spring应用程序-config.xml中 <bean id=“shapeFactory" class="com.shapes.ShapeFactory" /> <bean id=“shapeHelper" class="com.shape.ShapeHelper"> <constructor-arg value=“#{shapeFactory.createDefaultShape()}” /> </bean> 我怎么能调用上面
<bean id=“shapeFactory" class="com.shapes.ShapeFactory" />
<bean id=“shapeHelper" class="com.shape.ShapeHelper">
<constructor-arg value=“#{shapeFactory.createDefaultShape()}” />
</bean>
我怎么能调用上面的任何一个方法并使返回的Shape成为shapeHelper构造函数的参数呢?一种方法是使用工厂主体创建名为Shape的bean
<bean id="shape " class="..Shape" factory-bean="shapeFactory" factory-method="createDefaultShape">
<constructor-arg name="argNAme" type="java.lang.Long" value="1">
<!--all args go here ? THEY WILL passed as parameters to the method createDefaultShape -->
</constructor-arg>
然后在shapeHelper中,您可以简单地引用该bean
<bean id=“shapeHelper" class="com.shape.ShapeHelper">
<constructor-arg ref="shape" />
</bean>
这取决于要在何处传递参数?在运行时,还是在xml配置时?
<bean id="shape " class="..Shape" factory-bean="shapeFactory" factory-method="createDefaultShape">
<constructor-arg name="argNAme" type="java.lang.Long" value="1">
<!--all args go here ? THEY WILL passed as parameters to the method createDefaultShape -->
</constructor-arg>
<bean id=“shapeHelper" class="com.shape.ShapeHelper">
<constructor-arg ref="shape" />
</bean>