以下是我的tomcat context.xml
<Parameter name="datasource.url" override="false" value="jdbc:mysql://localhost:3306/"/>
<Parameter name="datasource.username" override="false" value="root"/>
<Parameter name="datasource.password" override="false" value="password"/>
我想使用PropertyPlaceHolderConfigurer将这些属性值读入spring xml,以替换datasource.username,datasource.password,datasource.url的以下代码中的值
<beans:bean id="dataSource" destroy-method="close"
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<beans:property name="driverClass" value="com.mysql.jdbc.Driver" />
<beans:property name="jdbcUrl"
value="${datasource.url:jdbc:mysql://localhost:3306/exampledb}" />
<beans:property name="user" value="${datasource.username:root}" />
<beans:property name="password" value="${datasource.password:root}" />
</beans:bean>
我的propertyHolder配置
<beans:bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<beans:property name="nullValue" value="@null" />
<beans:property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<beans:property name="locations">
<beans:list>
<beans:value>classpath:mysql-queries.properties</beans:value>
<beans:value>classpath:essayscoring-settings.properties
</beans:value>
</beans:list>
</beans:property>
</beans:bean>
请建议我如何从tomcat context.xml中读取这些值到propertyPlaceHolder
答案 0 :(得分:-1)
Spring方法是正确的。 创建一个单独的属性文件并在spring中导入:
<context:property-placeholder location="classpath*:some.properties"/>
然后 将spring上下文导入到tomcat上下文中:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>