如何避免弹簧占位符的重复?通常我加载所有属性,然后逐个使用它们,重复所有内容3次(属性文件,属性名称来自xml,占位符名称):
<context:property-placeholder location="classpath:/spring/application.properties,
classpath:/spring/${env}.properties" />
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="properties">
<value>
user = ${db.user}
password = ${db.passwd}
</value>
</property>
</bean>
我能做到:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="properties" ref="allProperties"/>
</bean>
然而,这不是一个好的解决方案,因为:
所以问题是: 是否有任何东西可以让我选择应该传递的属性(通过前缀)?类似的东西:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="properties">
<bean class="...PropertiesFilter">
<property name="prefix" value="c3p0"/>
<property name="src" ref="allProperties"/>
</bean>
</property>
</bean>
我知道,写起来并不难,但也许春天已经有了类似的东西(语法更好)。