Создать TCP-клиент для отправки и получения весной загрузки приложения

Я должен взаимодействовать с унаследованной системой, где мне нужно настроить TCP-клиента с помощью Spring-интеграции в java / kotlin, чтобы отправить сообщение в систему TCP и получить его ответ, проанализировать этот ответ и отправить его другому клиенту через REST. Я просмотрел много документации и блогов, в которых рассказывается, как это сделать с помощью XML. Не удается найти соответствующие аннотации для всего. Любой фрагмент кода будет очень полезным.

@Service
class MyService{

@Autowired
MyGateway gateway;

public String callTCPClient(String msg){
    return gateway.exchange(msg);
}

}
interface MyGateway{
String exchange (String msg)
}

Всего 1 ответ


Как показано в этом ответе, вы можете делать все, что захотите после получения ответа ...

@Bean
public IntegrationFlow client() {
    return IntegrationFlows.from(MyGateway.class)
            .handle(Tcp.outboundGateway(
                Tcp.netClient("localhost", 1234)
                    .serializer(codec()) // default is CRLF
                    .deserializer(codec()))) // default is CRLF
            .transform(Transformers.objectToString()) // byte[] -> String
            .get();
}

В этом случае мы просто преобразуем байтовый массив в String, но вы можете выполнять с ним все необходимые операции, например, JSON to Object. Вы можете добавить столько шагов, сколько хотите - добавьте .handle(...) для вызова произвольных методов. Прочитайте справочное руководство по интеграции с Spring .