java - 拥有多个数据源

标签 java spring datasource

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

最佳答案

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

<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,但它有两个实例 - 每个实例都有自己的数据源。一个将从源中选择,另一个将插入到目标中。

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

关于java - 拥有多个数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7134299/

相关文章:

java - Spring Batch 中多个数据源的使用

java - Java 服务器上使用 Socket.IO 的“访问控制允许来源”

java - itextpdf : merge pdf files

java - Spring 启动: how can @EnableAutoConfiguration be re-used?

java - 在 wildfly 8 中使用 apache commons BasicDataSource

c# - 将DataSource设置为Datagridview后添加一行

docker - Grafana + InfluxDB配置

java - 如何将插入符号放置在用户在单元格中单击的位置

java - 如何让 Spring 为我的 bean 创建 AOP 代理

java - Spring JMX - 导出键值对映射