委派 Session Factory
版本 4.2 引入了DelegatingSessionFactory,这允许在运行时选择实际的 session factory。
在调用 SFTP 端点之前,您可以调用setThreadKey()将 key 与当前线程相关联。
然后,该键用于查找要使用的实际会话工厂。
您可以通过调用clearThreadKey()使用后。
我们添加了便捷的方法,以便您可以更轻松地从消息流执行此作,如下例所示:
<bean id="dsf" class="org.springframework.integration.file.remote.session.DelegatingSessionFactory">
    <constructor-arg>
        <bean class="o.s.i.file.remote.session.DefaultSessionFactoryLocator">
            <!-- delegate factories here -->
        </bean>
    </constructor-arg>
</bean>
<int:service-activator input-channel="in" output-channel="c1"
        expression="@dsf.setThreadKey(#root, headers['factoryToUse'])" />
<int-sftp:outbound-gateway request-channel="c1" reply-channel="c2" ... />
<int:service-activator input-channel="c2" output-channel="out"
        expression="@dsf.clearThreadKey(#root)" />| 使用会话缓存时(请参阅 SFTP 会话缓存),应缓存每个委托。
您不能缓存 DelegatingSessionFactory本身。 | 
从版本 5.0.7 开始,DelegatingSessionFactory可与RotatingServerAdvice轮询多个服务器;请参见入站通道适配器:轮询多个服务器和目录。