【问题标题】:Spring Integration Transformer's expression to set value to payloadSpring Integration Transformer 将值设置为有效负载的表达式
【发布时间】:2021-04-17 00:09:46
【问题描述】:

我正在尝试使用 Spring 集成转换器的表达式为有效负载设置一个值。

我的有效载荷是一个具有以下变量的对象

Private int id;
Private String name;

//getter
//setter

这就是我的变压器的样子

<int:transformer input-channel="inChannel"
    output-channel="outChannel"
    expression="payload.name = ‘test’”/>

但我无法让它工作。我在这里有什么错误吗?

提前致谢!

【问题讨论】:

    标签: java spring-integration


    【解决方案1】:

    在大多数情况下,当您在 Spring Integration 通道适配器中看到 SpEL 表达式时,它是关于“只读”行为的。只是因为端点是双向逻辑:从输入通道接收消息,执行表达式,根据表达式评估结果构建回复并将其生成到输出通道。

    “设置值”表达式不返回任何内容,因此即使我们可以支持write 这种表达式,这个转换器也不知道下一步该怎么做。

    幸运的是,您正在寻找一个组件。 这是一个Content Enricher EI 模式实现。在 Spring Integration 中,我们称之为&lt;payload-enricher&gt;。有关更多信息,请参阅文档:https://docs.spring.io/spring-integration/reference/html/message-transformation.html#payload-enricher。另请参阅此示例:https://github.com/spring-projects/spring-integration-samples/tree/main/basic/enricher

    【讨论】:

    • 非常感谢。我会试试这个,让你知道。再次感谢您花时间回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多