Как загрузить ресурсы, находящиеся вне JAR, в MultiResourceItemReader? - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь загрузить Resource[] в MultiResourceItemReader. Запуская приложение локально, я могу внедрить ресурсы напрямую, так как они содержатся в каталоге ресурсов.

Однако приложение будет развернуто как jar-файл на сервере, после чего ресурсы (плоские файлы) будет расположен за пределами банки. У меня проблемы с использованием PathMatchingResourcePatternResolver - я получаю сообщение об ошибке "Ресурсы не найдены".

1 Ответ

2 голосов
/ 15 января 2020

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

допустим, у вас есть входные файлы в каталоге / data / inputs / csv / с шаблоном пример * .csv , тогда в файле application.properties вы можете иметь

 input.files.location=/data/inputs/csv/
 input.file.pattern=example*.csv

, тогда в конфигурации MultiResourceItemReader вы можете указать следующее:

@Value("file:${input.files.location}${input.file.pattern}")
private Resource[] inputResources; //thus inputResources will have files matching pattern example*.csv in folder 

@Bean
public MultiResourceItemReader<T> multiResourceItemReader() 
{
    MultiResourceItemReader<T> resourceItemReader = new MultiResourceItemReader<T>();
    resourceItemReader.setResources(inputResources);
    resourceItemReader.setDelegate(reader());
    return resourceItemReader;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...