2013-02-14 42 views
0

我一直在google上搜索大约一个小时,但收效甚微。春季动态列表属性

假设在我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> 
[...] 

我想补充hibernate.websitespecific.entityscanpackages到包扫描清单一个干净的方式。我怎么做?

回答

1

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

例如:

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

编辑

要合并两个软件包列表:

​​

<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> 
+0

哦,你不说? – gotch4 2013-02-15 10:28:35

+0

为什么不呢?应该管用。你试过了吗? – 2013-02-15 10:40:14

+0

啊!我知道,你不知道如何合并字符串。在spel或T上使用+运算符(StringUtils).collectionToCommaDelimitedString(@yourList) – 2013-02-15 11:44:06