2011-02-25 42 views
2

在spring xml中連接bean列表的最佳方式是什麼?每個bean的數據必須在xml文件中定義 (這是因爲在這個sprint中,將來自xml,來自db的下一個sprint,所以它不值得花費太多時間來創建)。如何在spring中連接bean列表

這是我有什麼,但必須有一個更好的辦法:

<bean id="annouce1" class="com.company.domain.Announcement"> 
     <property name="body" value="bodyasfsdf"/> 
     <property name="title" value="title"/> 
     <property name="linkText" value=">>"/> 
     <property name="linkUrl" value="http://google.com"/> 
    </bean> 
    <bean id="annouce2" class="com.company.domain.Announcement"> 
     <property name="body" value="bodyasfsdf"/> 
     <property name="title" value="title"/> 
     <property name="linkText" value=">>"/> 
     <property name="linkUrl" value="http://google.com"/> 
    </bean> 
     <bean id="annouce3" class="com.company.domain.Announcement"> 
     <property name="body" value="bodyasfsdf"/> 
     <property name="title" value="title"/> 
     <property name="linkText" value=">>"/> 
     <property name="linkUrl" value="http://google.com"/> 
    </bean> 
     <bean id="annouce4" class="com.company.domain.Announcement"> 
     <property name="body" value="bodyasfsdf"/> 
     <property name="title" value="title"/> 
     <property name="linkText" value=">>"/> 
     <property name="linkUrl" value="http://google.com"/> 
    </bean> 


    <util:list id="homepageAnnoucements" scope="singleton"> 
      <ref bean="annouce1"/> 
      <ref bean="annouce2"/> 
      <ref bean="annouce3"/> 
      <ref bean="annouce4"/> 
    </util:list> 

回答

6

它帶着一個巨大的驚喜給我,但由於Spring 2.5的你其實可以寫:

@Resource 
private List<Announcement> announcements; 

Spring會查找Announcement類型的所有bean,並使用列表注入它們。當然,手動取豆的老同學仍然適用:

@Resource 
private ApplicationContext ctx; 

@PostConstruct 
public void init() { 
    Map<String, Announcement> announcementsBeans = ctx.getBeansOfType(Announcement.class); 
    List<Announcement> announcements = announcementsBeans.values(); 
} 
+0

完美,感謝 – mkoryak 2011-02-25 16:42:36

+0

有趣的博客,順便說一句,我去要跟着你 – mkoryak 2011-02-25 16:45:19

相關問題