我有如下的bean定义
<util:list id="myBeanList">
<bean id="stage1" class="Stageclass"/>
<bean id="stage2" class="Stageclass"/>
</util:list>
我知道如果我们想参考上面的列表,我们可以使用像
这样的东西<ref bean="myBeanList" />
但是,我不想引用整个列表,而是想在这个列表中引用一个特定的bean,比如“stage1”。可能类似于<ref bean="myBeanList$stage1" />
?
是否可以像这样引用内部bean?是的,怎么办?
答案 0 :(得分:1)
您可以使用Spring Expression Language执行此操作。
<ref bean="#{myBeanList[0]}" />
但是,我不确定您是否能够通过列表中的bean ID访问。 List不允许您通过bean id或name访问任何内容(这本质上是Map类型的模式)。如果您需要按名称访问,则应考虑将所有bean放在映射中,然后表达式语言应允许您按名称访问它。 Here is an example如何通过bean id访问map中的元素。
我发现的表达语言的一个参考是this。看看如何在spring-config.xml中使用studentList。