Я пытался создать пакет 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, но я не знаю, как их активировать.
Я могу войти внутри тасклета, но не внутри моего считывателя или моего процессора.Как я могу соединить их для совместной работы?