2011-10-03 104 views
0

想知道是否有一種方法可以使用PropertyPlaceholderConfigurer類根據屬性文件中的一組值來動態實例化bean。基於Spring中的屬性文件動態配置java beans

我有一個Java bean說學生有兩個屬性:「name」和「主題」

我有一個屬性文件:

student.1.name=student1name 
student.1.subject=student1subject 
student.2.name=student2name 
student.2.name=student2subject 

現在我有一個教室對象,可以採取學生名單。

我想知道是否有一種方法,我們可以使用Spring做到這一點。這裏面臨的挑戰是學生人數可能會有所不同。

如果只有一個學生對象,然後:

<bean id="student" class="com.abc.Student"> 
    <property name="name" value="${student.1.name}" /> 
    <property name="subject" 
     value="${student.1.subject}" /> 
</bean> 

<bean id="classRoom" class="com.abc.ClassRoom"> 
    <property name="student" ref="student" /> 
</bean> 

會工作。但是在這種情況下,我們有一份n個學生的名單。而n的值可能會因屬性文件中的條目數而異。

回答

0

我與凱文 - 國際海事組織你走錯了方式。

一個可能的解決方法是創建一個bean,是以屬性文件作爲參數,讀取它,並公開學生名單(這將需要對東西被編入索引,如ñ在現有的屬性文件)。

教室bean可以使用該列表的學生。

但它肯定看起來像你試圖以一種尷尬的方式重複數據庫的功能,沒有數據庫。

+0

感謝您的輸入凱文和戴夫。我已經實現了以屬性文件作爲參數並實例化對象。可以像Kevin所說的那樣使用XML,但認爲這可能是一種矯枉過正。非常感謝!! – ignatan

0

我不認爲有一種方法可以通過PropertyPlaceholderConfigurer來實現。通常,當我遇到這種情況時,我選擇JSON或XML的配置格式,並使用GSON/Jackson/JAXB將數據解組到對象中。

相關問題