spring中的动态列表属性

spring中的动态列表属性,spring,Spring,我在谷歌上搜索了大约一个小时,几乎没有成功 假设在我的web.xml中,我有: <Parameter name="hibernate.websitespecific.entityscanpackages" value="com.mystuff.pojo.entities, com.mystuff.otherpackage.pojo.entities"/> 在我的spring上下文配置中,我有: <bean id="sessionFactory" cl

我在谷歌上搜索了大约一个小时,几乎没有成功

假设在我的
web.xml
中,我有:

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

在我的spring上下文配置中,我有:

 <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>
[...]

com.mystuff.somethingelse.pojo
com.mystuff.weirdbeans.domain
[...]

我想将
hibernate.website-specific.entityscanpackages
添加到要以干净方式扫描的包列表中。如何做到这一点?

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

例如:

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

编辑

要合并两个包列表,请执行以下操作:

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


pk1
pk2
...

啊!我明白了,你不知道如何合并字符串。对spel或T(StringUtils)使用+运算符。collectionToCommaDelimitedString(@yourList)现在答案有意义了
<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>