使用 DSL 为传出网关的响应指定转换器的首选方法是什么

What is the preferred way of specifying a transformer for the response of an outgoing gateway using DSL

我有如下一段代码:

@Configuration
@EnableConfigurationProperties(ISOGatewayProperties::class)
class ISOGatewayConfig {

    @Bean
    fun isoGatewayFlow(
        isoProps: ISOGatewayProperties,
        isoTransformer: ISOTransformer) : IntegrationFlow =
            IntegrationFlows
                .from(MessageChannels.direct("isoInChannel"))
                .log()
                .transform(isoTransformer)
                .handle(Tcp.outboundGateway(
                    Tcp.netClient(isoProps.host, isoProps.port)))
                .get()
}

此代码正确地将作为对象的请求转换为字节[],以便发送到远程服务器

我的问题如下:

  1. 转换服务器响应的首选方式是什么?
  2. 是否可以对两个转换使用一个 class?

Artem 回答 执行自定义协议的正确方法是使用自定义 serializer/deserializer.

您只需在流程中 .handle(Tcp.outboundGateway(...)) 之后添加一个 .transform(...)

好吧,你可以对请求和响应使用相同的 class,但我相信在响应的情况下你需要从 byte[] 创建一个 ISO 对象,因此你需要将方法名称指定为第二个 .transform() 参数,以明确目标转换端点。