#spring-boot #spring-integration
Вопрос:
Вариант использования заключается в том, что мне нужно опросить папку на удаленном сервере, и если в эту папку скопирован новый файл, мне нужно вызвать API REST get с содержимым файла. API REST обработает содержимое файла с помощью пакета Spring.
Я пытаюсь использовать интеграцию Spring boot для этой цели, но у меня возникают проблемы с поиском пути. Является ли интеграция Spring наиболее подходящей для этой цели? Если да, могу ли я привести простой пример того, как только интеграция Spring забирает файл и вызывает REST API?
Или я могу просто использовать службу Java Watcher?
Ответ №1:
Не ясно, что такое ваша удаленная папка, но вы все равно не можете использовать Java WatchService
для этой цели. Обычно удаленный каталог находится на FTP (Ах). Интеграция Spring предоставляет адаптеры каналов для опроса такого удаленного каталога по упомянутому протоколу.
Смотрите дополнительную информацию в документах: https://docs.spring.io/spring-integration/docs/current/reference/html/ftp.html#ftp-inbound
Вероятно, вам не нужно иметь локальную копию удаленной службы, тогда вы можете рассмотреть возможность использования адаптера потокового канала вместо этого: https://docs.spring.io/spring-integration/docs/current/reference/html/ftp.html#ftp-streaming
Поскольку содержимое файла передается в канал, настроенный в этом адаптере канала, вы можете использовать адаптер исходящего канала HTTP для вызова некоторого REST API: https://docs.spring.io/spring-integration/docs/current/reference/html/http.html#http-outbound
Вы можете изучить образцы проекта для получения некоторого вдохновения: https://github.com/spring-projects/spring-integration-samples