更改spring批处理中的默认数据源

时间:2016-06-08 18:55:59

标签: java mysql spring

我想在spring批处理应用程序中使用mysql数据库。我应该在哪里保存XML文件以及数据源的详细信息。 目前我已将env-context.xml保留在src/main/resources/META-INF/batch/override/manager

env-context.xml的内容:

<!-- connect to database -->
<bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/demo_db" />
    <property name="username" value="testuser" />
    <property name="password" value="12345" />
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>

1 个答案:

答案 0 :(得分:1)

常见的方法是将这种配置参数放入属性文件中,以便将它们外部化,因为它们会从一个环境变为另一个环境。

可以按照下一步完成:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <value>classpath:datasource.properties</value>
    </property>
</bean>
<bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${datasource.driver}" />
    <property name="url" value="${datasource.url}" />
    <property name="username" value="${datasource.username}" />
    <property name="password" value="${datasource.password}" />
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource" />
</bean>

然后将文件datasource.properties放入类路径中,此文件的内容类型为:

datasource.driver=com.mysql.jdbc.Driver
datasource.url=jdbc:mysql://localhost:3306/demo_db
datasource.username=testuser
datasource.password=12345