Je suis en train d'utiliser la passerelle sortante pour télécharger des fichiers à partir de plusieurs serveurs SFTP, le nombre de serveur SFTP est configuré dans les propriétés (ce qui signifie que je dois définir la connexion dynamique), mes application.properties:comment définir plusieurs connexions sftp?
sftp.host=host1,host2
sftp.user=user1,user2
sftp.pwd=pwd1,pwd2
courant I utiliser la config java comme:
@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();
}
}
mais cette config est seulement pour se connecter à un serveur sftp, alors comment puis-je définir plusieurs connexions sftp en utilisant la configuration application.properties? Je veux dire le nombre dynamique de sessionFactory/gestionnaire/passerelle/channer (une partie du bean a l'annotation, comment définir dynamique ce type de bean?)
Salut @Artem, pouvez-vous donner plus de conseils? le nombre de serveur sftp est décidé par le fichier de propriétés, j'ai essayé BeanDefinitionRegistryPostProcessor mais pas de succès. –