我想在我的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應用程序上下文中。 –