如何将tomcat context.xml参数值导入spring PropertyPlaceholderConfigurer

时间:2016-10-03 20:18:50

标签: java spring tomcat

以下是我的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

1 个答案:

答案 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>
相关问题