Как добавить собственный метод в интерфейс ftp-шлюза Spring интеграции?

После интеграции Spring ftp doc, Мне удалось отправить файлы на ftp-сервер через конфигурацию java:

@MessagingGateway
public interface MyGateway {

     @Gateway(requestChannel = "toFtpChannel")
     void sendToFtp(File file);

}

ss

    public static void main(String[] args) {
    ConfigurableApplicationContext context =
                new SpringApplicationBuilder(FtpJavaApplication.class)
                    .web(false)
                    .run(args);
    MyGateway gateway = context.getBean(MyGateway.class);
     // sending file to ftp server
    gateway.sendToFtp(new File("/foo/bar.txt"));
}

Мне кажется, что в приведенном выше коде используется специальный метод sendToFtp () для отправки файла на целевой ftp-сервер. Мой вопрос в том, как добавить другие методы в интерфейс MyGateway для реализации операций?

ls (list files)
get (retrieve file)
mget (retrieve file(s))
rm (remove file(s))
mv (move/rename file)
put (send file)
mput (send multiple files)

person rellocs wood    schedule 18.08.2017    source источник


Ответы (1)


Каждый FTP-шлюз может обрабатывать только один метод.

Вам нужно объявить по одному для каждого, тогда ...

@MessagingGateway
public interface MyGateway {

     @Gateway(requestChannel = "toFtpGetChannel")
     void sendToFtpGet(...);

     @Gateway(requestChannel = "toFtpPutChannel")
     void sendToFtpPut(...);

    ...

}
person Gary Russell    schedule 18.08.2017
comment
Есть ли способ подписаться на какой-либо из requestChannel. Если да, то как? - person Sibtain; 26.10.2017
comment
Совершенно непонятно, о чем вы спрашиваете; и ни в коем случае нельзя задавать новые вопросы в комментариях к старым ответам. Задайте новый вопрос с гораздо большей ясностью в том, что вы пытаетесь решить; сослаться на этот ответ из нового вопроса, если он уместен. - person Gary Russell; 26.10.2017