Пример ниже созданный с помощью одного из весенней интеграции samples on github.
Вот тот же самый пример, модифицированный для демонстрации метки времени добавляются к имени выходного файла:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
<file:inbound-channel-adapter id="filesIn"
directory="file:${java.io.tmpdir}/spring-integration-samples/input"
filename-regex="[a-z]+.txt">
<integration:poller id="poller" fixed-delay="5000"/>
</file:inbound-channel-adapter>
<file:file-to-string-transformer input-channel="filesIn" output-channel="strings"/>
<integration:channel id="strings"/>
<integration:service-activator input-channel="strings"
output-channel="filesOut"
ref="handler"/>
<file:outbound-channel-adapter id="filesOut" directory="file:${java.io.tmpdir}/spring-integration-samples/output"
filename-generator-expression="new java.text.SimpleDateFormat('yyyyMMddHHmmssSSS').format(new java.util.Date()) + '.' + headers['file_name']" />
<bean id="handler" class="org.springframework.integration.samples.filecopy.Handler"/>
Наиболее значимая часть из приведенной выше коды заключается в следующем: filename-generator-expression="new java.text.SimpleDateFormat('yyyyMMddHHmmssSSS').format(new java.util.Date()) + '.' + headers['file_name']"
, который показывает, что с помощью простого выражения SPEL вашего выходной файл имеет желаемое имя.
Кажется, это работает на полпути для меня. Пакетное задание запускается с новым именем файла, но читатель получает старое имя файла. Из-за этого я должен получить ресурс. – samwell
@samwell ... глупый вопрос ... но читатель, возможно, смотрит на неправильную папку? ... Я не могу видеть ваш пакетный конфигуратор, поэтому я должен принимать вещи :) –
Ух ты, я попробовал, чтобы посмотреть на заранее определенный файл. Хотя, когда я меняю его на «file: // # {jobParameters ['input.file.name']}", у меня возникают проблемы, я сделаю еще одно сообщение об этом, я не думаю, что это относится к этому после. – samwell