在子bean上设置值

时间:2011-08-09 21:15:40

标签: java spring

我想在Spring IoC应用程序上下文中获取一个子对象并在其上设置一个值。我怎么能这样做?

这是等效的代码:

// The constructor here instantiates the correct child object
MyContainerBean container = new MyContainerBean();
container.getChild().setValue(someValue);

2 个答案:

答案 0 :(得分:2)

你的意思是

<bean id="container" class="MyContainerBean">
    <property name="child">
        <bean class="Child">
            <property name="value" value="someValue"/>
        </bean>
    </property>
</bean>

修改:根据您的回复,您的问题是您违反了控制反转。对象不会创建自己的依赖项。他们允许注射它们。在这种情况下,您可以使用XML配置做的最好的事情可能是创建容器,将其注入某个对象,并让该对象进行所需的更改。您还可以使用Java-based configuration根据需要创建和配置容器bean。

答案 1 :(得分:0)

如果父实例化了该子项并且您无法更改该项,则将该值注入父项并让父项在适当的时候将其注入子项中。如果在父创建时不知道要注入的值,则必须更改设计。