Spring Batch Tasklet с читателем и ItemProcessor - PullRequest
0 голосов
/ 05 июля 2019

Я пытался создать пакет Job with Spring с такими точками:

Step1
Step2
Step3
Step4
Step5

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

Затем я начал делать некоторые реализации в Step1 .Мне нужно переместить некоторые файлы из dir1 в dir2 и прочитать эти перемещенные файлы, чтобы нажать регистры.

В методе execute () form Step1 , я делаю следующее:

Чтение файлов для обработки как ресурсов:

ResourcePatternResolver patternResolver = new 
PathMatchingResourcePatternResolver();
Resource[] resources = null;
try {
    resources = patternResolver.getResources("file:" + outDir);
} catch (IOException e) {
    logger.error("Error reading files", e);
}

Затем я создаю и настраиваю свой FlatFileItemReader:

    FlatFileItemReader<MyCustomDTO> reader = new FlatFileItemReader<MyCustomDTO>();
reader.setLineMapper(new DefaultLineMapper<MyCustomDTO>() {
    {
        setFieldSetMapper(new FieldSetMapper<MyCustomDTO>() {

            @Override
            public MyCustomDTO mapFieldSet(FieldSet fieldSet) throws BindException {

                String[] values = fieldSet.getValues();
                //validations
                MyCustomDTO dto = new MyCustomDTO();
                //code
                return dto;
            }
        });
    }
});

Затем я создаю MultiResourceItemReader , где я устанавливаю свои файлы ресурсов и мой читатель делегата:

MultiResourceItemReader<MyCustomDTO> resourceItemReader = new MultiResourceItemReader<MyCustomDTO>();
resourceItemReader.setResources(resources);
resourceItemReader.setDelegate(reader);

Теперь я хочу обработать эти прочитанные объекты с помощью ItemProcessor для разделения на три списка зависит от некоторых их значений.В любом случае, у меня есть ItemReader и ItemProcessor, но я не знаю, как их активировать.

Я могу войти внутри тасклета, но не внутри моего считывателя или моего процессора.Как я могу соединить их для совместной работы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...