2015-01-27 5 views
2

Я хочу прочитать файл по имени с помощью Spring Integration. Я знаю, как использовать файловый адаптер с poller. Но в этом случае я просто хочу прочитать файл по имени и добавить его во входной канал.Spring Integration - чтение файла по имени

Мое приложение является автономным банком и будет вызываться с использованием аргументов командной строки. Одним из аргументов будет имя файла. Я также использую Spring-Boot. Просто не знаю, как начать обработку, прочитав этот файл и добавив его во входной канал. Нужен ли мне специальный шлюз?

Благодаря

ответ

1

Если я вас правильно понял вы должны использовать <context:property-placeholder> и конфигурации, как это:

<file:inbound-channel-adapter 
     channel="input" 
     directory="${dir}" 
     filename-pattern="${pattern}"> 
    <poller fixed-delay="${fixedDelay}" time-unit="SECONDS"/> 
</file:inbound-channel-adapter> 

Где все эти заполнители должны быть ваша программа арг, как это:

java myMain --dir=/usr/mydir --patter=myfile.name --fixedDelay=1000 

ОБНОВЛЕНИЕ

Однако, нет: вам не нужно <context:property-placeholder> - Spring Boot делает это за вас!

UPDATE 2

К сожалению, вы требование до сих пор не ясно. Так или иначе, как об этом:

<int-event:inbound-channel-adapter channel="processFileChannel" 
    event-types="org.springframework.context.event.ContextRefreshedEvent" 
    payload-expression="new java.io.File('${filePath}')"/> 

Где filePath есть снова аргумент командной строки. И свойство placeholder из Spring Boot.

<int-event:inbound-channel-adapter> отвечает, чтобы прослушать ApplicationEvent. В этом случае мы реагируем на ContextRefreshedEvent - главное событие, когда приложение applicationContext готово что-то сделать.

+0

Фактически нет. Я просто хочу вызвать конкретный файл по имени. Каждый раз он будет другим. Нет рисунка. И, как я уже упоминал в вопросе, мне не нужен опроллер, так как я не буду проводить опрос, когда это будет автономным банком и не будет работать на веб-сервере. – adi

+0

Обновлен мой ответ другим решением. –

+0

Это интересно .. попробуем и дадим вам знать, спасибо – adi