我想在我的Spring IoC应用程序上下文中获得一个子对象并为其设置一个值。我怎样才能做到这一点?设置子bean上的值
下面是代码相当于:
// The constructor here instantiates the correct child object
MyContainerBean container = new MyContainerBean();
container.getChild().setValue(someValue);
我想在我的Spring IoC应用程序上下文中获得一个子对象并为其设置一个值。我怎样才能做到这一点?设置子bean上的值
下面是代码相当于:
// The constructor here instantiates the correct child object
MyContainerBean container = new MyContainerBean();
container.getChild().setValue(someValue);
你的意思
<bean id="container" class="MyContainerBean">
<property name="child">
<bean class="Child">
<property name="value" value="someValue"/>
</bean>
</property>
</bean>
?
编辑:根据你的回答,你的问题是你有违反控制反转。对象不会创建自己的依赖关系。他们允许他们被注射。在这种情况下,使用XML配置可以做的最好的做法可能是创建容器,将其注入到某个对象中,然后让该对象进行所需的更改。您也可以使用Java-based configuration根据需要创建和配置容器bean。
这有点像我正在寻找的东西。区别在于我无法在bean中实例化Child。 MyContainer的默认构造函数实例化Child。然后,我想获取MyContainer实例化的Child对象并为其设置一个值。 –
是什么阻止你使用Spring来实例化孩子? – Jeremy
父类本身构造子类并为子类的构造函数提供它自己的默认值。我不想干涉这部分过程。 –
如果家长实例化孩子,并且您无法更改该值,则将该值注入父级,然后让父级父母在适当的时候将其注入孩子。如果在创建父级时未注明要注入的值,则必须更改设计。
你问是否可以通过应用程序上下文注入'someValue'? – Jeremy
在什么情况下?弹簧?还有别的吗?你几乎没有提供任何人可以用来理解你的问题的信息。 –
@Jim - 是的,在Spring应用程序上下文中。 –