Наличие более одного источника данных - PullRequest
3 голосов
/ 20 августа 2011

Я не нашел вопрос по этой теме, поэтому я спрошу.Я никогда не занимался чем-то, что использует более одного источника данных.Одним из примеров будет ETL , для которого требуются два источника данных.Как можно разработать такое приложение?

1 Ответ

4 голосов
/ 21 августа 2011

Два источника данных, два отдельных имени. Инъекция каждого из них по их соответствующим идентификаторам бина.

<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 и просто использовать механизмы массовой передачи, встроенные в базы данных.

...