Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用spring中方法返回的对象注入构造函数_Java_Spring_Spring Mvc_Javabeans - Fatal编程技术网

Java 使用spring中方法返回的对象注入构造函数

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> 我怎么能调用上面

在我的spring应用程序-config.xml中

<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>