我想在Spring IoC应用程序上下文中获取一个子对象并在其上设置一个值。我怎么能这样做?
这是等效的代码:
// The constructor here instantiates the correct child object
MyContainerBean container = new MyContainerBean();
container.getChild().setValue(someValue);
答案 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)
如果父实例化了该子项并且您无法更改该项,则将该值注入父项并让父项在适当的时候将其注入子项中。如果在父创建时不知道要注入的值,则必须更改设计。