2011-02-25 28 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

相关问题