2014-12-11 3 views
0

Я новичок в Spring Batch.Чтение базы данных с процессора пружинных элементов

Я просто хочу знать, можем ли мы сделать вызовы базы данных (jdbccursoritemreader) из Itemprocessor?

У меня есть требование прочитать db (ItemReader), отправить записи для обработки (ItemProcessor), во время обработки мне нужно вызвать другую базу данных (точно так же, как справочные данные), чтобы обновить записи, которые я получил от ItemReader и, наконец, отправить окончательные записи автору.

Любое обходное решение и предложения приветствуются.

Спасибо.

ответ

0

Да, вы можете это сделать.

Вам понадобится ввести класс в ваш процессор, чтобы выполнить чтение базы данных. Для простоты я бы, вероятно, пошел с JdbcTemplate.

Что-то вроде этого:

public class MyProcessor implements ItemProcessor<Foo, Bar> { 

    private JdbcTemplate jdbcTemplate; 

    @Override 
    public Foo process(Bar bar) throws Exception { 
    //use JdbcTemplate here 
    } 

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { 
    this.jdbcTemplate = jdbcTemplate; 
    } 

} 

При настройке процессора, впрыснуть JdbcTemplate:

<bean class="com.example.MyProcessor" id="myProcessor"> 
    <property name="jdbcTemplate" ref="jdbcTemplate"/> 
</bean> 
+0

Привет Нил, Спасибо за ваш ответ. Я сохранил это решение как PLAN B. Я думал, что сама конфигурация весенней партии предоставляет такое решение, как itemReader1, считывает данные из основного db и отправляет в itemprocessor1, itemReader2 считывает данные из ссылки db и отправляет в itemprocessor2 и использует составной процессорный модуль как результаты, так и процесс и отправить его одному или нескольким автору. Возможно ли это? –

Смежные вопросы