Куда идет конфигурация источника данных бизнес-обработки в Spring Batch? - PullRequest
0 голосов
/ 06 января 2012

Я изучал среду Spring Batch, чтобы попытаться применить на практике онлайн-документацию, а также книгу Pro Spring Batch от Appress.У меня быстрый вопрос.

Сценарий

Я хочу провести простой тест, где я читаю из базы данных, выполняю некоторую обработку и затем пишу в другую базу данных.

Вопрос

Я понимаю, что существует файл конфигурации с именем launch-context.xml , в котором содержится схема базы данных репозитория заданий для поддержания состояния заданий и каждого из шагов для каждого изих.

Скажите, что у меня есть исходная база данных (A), из которой я выполняю чтение, и целевая база данных (B), в которую я пишу.

Может быть, я упустил это, но ...

  1. Где я могу разместить информацию об источниках данных для A и B?

  2. Полагаю, это зависит от ответа # 1, но если поставить его в src / main / resources скажем, например source-datasource.xml и target-datasource.xml Как Spring собирается подобрать и правильно подключить?В разработке веб-приложений Spring я обычно помещаю эти типы файлов в тег context-param .

1 Ответ

1 голос
/ 06 января 2012

Вы можете определить эти источники данных в любом выбранном вами весеннем файле, так что да:

  • src/main/resources/db/source-datasource.xml
  • src/main/resources/db/target-datasource.xml

будетdo.

Допустим, вы назвали свои bean-компоненты источника данных как sourceDataSource и targetDataSource.Вы говорите Spring Batch (или, в данном случае, просто Spring) использовать их через «импорт» и «внедрение зависимостей».

Импорт

Вы можете организовать свои весенние конфигурации так, как это нужно.Вы подходите лучше всего, но, поскольку у вас уже есть launch-context.xml, для того, чтобы вышеуказанные источники данных были видны, вам необходимо импортировать их в launch-context.xml как:

<import resource="classpath:db/source-datasource.xml"/>
<import resource="classpath:db/target-datasource.xml"/>

Внедрение / Использование

<bean id="sourceReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
    <property name="dataSource" ref="sourceDataSource" />
    <!-- other properties here -->
</beans:bean>

<bean id="targetWriter" class="org.springframework.batch.item.database.JdbcBatchItemWriter">
    <property name="dataSource" ref="targetDataSource" />
    <!-- other properties here -->
</beans:bean>

где sourceReader и targetWriter - бобы, которые вы добавляете в свои шаги.

...