在spring xml中连接bean列表的最佳方法是什么,问题是必须在xml文件中定义每个bean的数据 (这是因为在这个sprint期间,它们将来自xml,db的下一个sprint,所以不值得为创建投入太多时间)。
这就是我所拥有的,但必须有更好的方法:
<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>
答案 0 :(得分: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();
}