拥有多个数据源

时间:2011-08-20 19:58:34

标签: java spring datasource

我没有找到关于这个主题的问题所以我会问。我从来没有真正解决过使用多个数据源的问题。一个例子是ETL,它需要两个数据源。如何设计这样的应用程序?

1 个答案:

答案 0 :(得分:4)

两个数据源,两个不同的名称。通过各自的bean ID注入每个。

<bean id="fromDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${from.jdbc.driverClassName}"/>
    <property name="url" value="${from.jdbc.url}"/>
    <property name="username" value="${from.jdbc.username}"/>
    <property name="password" value="${from.jdbc.password}"/>
</bean>

<context:property-placeholder location="from.jdbc.properties"/>

<bean id="toDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${to.jdbc.driverClassName}"/>
    <property name="url" value="${to.jdbc.url}"/>
    <property name="username" value="${to.jdbc.username}"/>
    <property name="password" value="${to.jdbc.password}"/>
</bean>

<context:property-placeholder location="to.jdbc.properties"/>

你想要一个DAO,但它有两个实例 - 每个都有自己的数据源。一个人会从源中选择SELECT,另一个会插入目标。

更好的方法可能是放弃Spring,只使用内置于数据库中的批量传输机制。