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>