Мне нужно создать автономный api с помощью адаптера sftp Spring, но вызывающий передаст параметры подключения sftp (хост, пользователь, pwd и т. Д.) И поэтому я не могу их инициализировать в контексте xml. Я ищу совет по наилучшему способу сделать это, требуя отторжения и воссоздания контекста приложения с каждым вызовом. Вот мой контекст xml прямо сейчас, и я хотел бы экрнализировать параметры DefaultSftpSessionFactory.Spring Integration SftpOutboundChannelAdapter - как передать параметры ftp во время выполнения
<bean id="sftpSessionFactory" class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory">
<property name="host" value="${host}" />
<property name="port" value="${serverport}" />
<property name="user" value="${username}" />
<property name="password" value="${password}" />
<property name="allowUnknownKeys" value="true" />
</bean>
<int:channel id="inputChannel" />
<int-sftp:outbound-channel-adapter id="sftpOutboundAdapter"
session-factory="sftpSessionFactory"
channel="inputChannel"
charset="UTF-8"
remote-file-separator="/"
remote-directory="/accounts/12026622/Reports/"
use-temporary-file-name="false"
mode="REPLACE"
remote-filename-generator-expression="payload.getName() + '-foo'" />
Также см. Этот https://spring.io/blog/2016/07/08/java-dsl-for-spring-integration-1-2-m1-and-1-1-3-are-available. Теперь вы можете настроить весь поток во время выполнения. Так же, как и для FTP –
Гэри - есть ли пример DelegatingSessionFactory с SessionFactoryLocator? – javakart
Не то, что я знаю, но не должно быть сложно добавить хост/порт/учетные данные в заголовок сообщения и использовать их в заводском локаторе. На этой неделе я на конференции SpringOne Platform; Я мог бы создать пример на следующей неделе, если вы напомните мне, добавив здесь комментарий. –