2011-08-09 91 views
0

我想在我的Spring IoC應用程序上下文中獲得一個子對象併爲其設置一個值。我怎樣才能做到這一點?設置子bean上的值

下面是代碼相當於:

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

你問是否可以通過應用程序上下文注入'someValue'? – Jeremy

+0

在什麼情況下?彈簧?還有別的嗎?你幾乎沒有提供任何人可以用來理解你的問題的信息。 –

+0

@Jim - 是的,在Spring應用程序上下文中。 –

回答

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。

+0

這有點像我正在尋找的東西。區別在於我無法在bean中實例化Child。 MyContainer的默認構造函數實例化Child。然後,我想獲取MyContainer實例化的Child對象併爲其設置一個值。 –

+0

是什麼阻止你使用Spring來實例化孩子? – Jeremy

+0

父類本身構造子類併爲子類的構造函數提供它自己的默認值。我不想幹涉這部分過程。 –

0

如果家長實例化孩子,並且您無法更改該值,則將該值注入父級,然後讓父級父母在適當的時候將其注入孩子。如果在創建父級時未註明要注入的值,則必須更改設計。