春天的动态列表属性

时间:2013-02-14 11:58:33

标签: spring

我一直在谷歌搜索大约一个小时,但收效甚微。

假设我的web.xml有:

<Parameter name="hibernate.websitespecific.entityscanpackages" value="com.mystuff.pojo.entities, com.mystuff.otherpackage.pojo.entities"/>

在我的春季上下文配置中我有:

 <bean id="sessionFactory"
          class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="packagesToScan">
            <list>
                <value>com.mystuff.somethingelse.pojo</value>
                <value>com.mystuff.weirdbeans.domain</value>
            </list>
        </property>
[...]

我想将hibernate.websitespecific.entityscanpackages添加到要清晰扫描的软件包列表中。我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用SPEL引用bean定义文件中的上下文参数:

例如:

<property name="foo" value="#{contextParameters.fooParamName}" />

修改

要合并两个包列表:

<property name="packagesToScan" value="#{contextParameters.paramName + ',pk1,pk2,pk3'}"/>

<property name="packagesToScan" value="#{contextParameters.paramName + ',' + T(org.springframework.util.StringUtils).collectionToCommaDelimitedString(@someList)}" />

    <util:list id="someList">
      <value>pk1</value>
      <value>pk2</value>
     ...
    </util:list>