Ich versuche, das Ausgangs-Gateway zu verwenden, um Dateien von mehreren SFTP-Server zum Download, wird die Anzahl der SFTP-Server in Eigenschaften konfiguriert (was bedeutet, dass ich die Verbindung dynamisch definieren müssen), meine application.properties:Wie definiert man mehrere SFTP-Verbindungen?
sftp.host=host1,host2
sftp.user=user1,user2
sftp.pwd=pwd1,pwd2
aktuellen verwende ich die Java-Konfiguration als:
@Configuration
public class SFtpConfig {
static Logger logger = LoggerFactory.getLogger(SFtpConfig.class);
@Autowired
SftpServerProperties sftpServerProperties;
@Autowired
SftpClientProperties sftpClientProperties;
@Bean
public SessionFactory<ChannelSftp.LsEntry> sftpSessionFactory() {
...
}
@Bean(name = "myGateway")
@ServiceActivator(inputChannel = "sftpChannel")
public MessageHandler handlerLs() {
...
}
@MessagingGateway
public interface DownloadGateway {
@Gateway(requestChannel = "sftpChannel")
List<File> start(String dir);
}
@Bean(name="sftpChannel")
public MessageChannel sftpChannel() {
return new DirectChannel();
}
}
aber diese Konfiguration ist nur für die Verbindung zu einem sftp-Server, also wie kann ich mehrere sftp-Verbindungen mit der application.properties config definieren? ich meine dynamische Anzahl von sessionFactory/Handler/Gateway/channer (einige der Bean hat Annotation, wie solche Art Bohne dynamisch definieren?)
Hallo @Artem, können Sie mehr Tipps geben? Die Anzahl der SFTP-Server wird durch die Eigenschaftendatei entschieden, ich habe BeanDefinitionRegistryPostProcessor versucht, aber keinen Erfolg. –