如何从多个文件收集spring属性以在单个bean上使用
问题内容:
我还没有把头缠在Spring上,所以如果这个问题没有道理,请纠正我…
我有一个PropertyPlaceholderConfigurer
<bean id="rdbmPropertiesPlacholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" lazy-init="false">
<property name="location" value="classpath:/properties/rdbm.properties" />
</bean>
我猜我有注入的豆吗?
<bean id="PortalDb" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${hibernate.connection.driver_class}" />
<property name="url" value="${hibernate.connection.url}" />
<property name="username" value="${hibernate.connection.username}" />
<property name="password" value="${hibernate.connection.password}" />
...
我想要的是第二个占位符,它使用用户名/密码指向不同的属性文件,这样我就可以将属性拆分为两个不同的文件。然后,数据库连接信息可以与db用户名/密码分开,并且我可以源代码控制一个而不是另一个。
我试过基本上复制具有不同ID和文件的rdbmPropertiesPlaceholder并尝试访问属性,但是它不起作用。
此代码来自uPortal开源Web门户项目。
问题答案:
使用此表示法可以指定多个文件:
<bean id="rdbmPropertiesPlacholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" lazy-init="false">
<property name="locations">
<list>
<value>classpath:/properties/rdbm.properties</value>
<value>classpath:/properties/passwords.properties</value>
</list>
</property>
</bean>
propertyplaceholderconfigurerer只是将所有这些合并,看起来只有一个,因此您的bean定义不知道这些属性来自何处。