我有一个Spring Integration流的配置类,该类在流末尾具有文件输出通道适配器。复制文件后,我正在使用ConsumerEndpointSpec.advice()发送通知。这是我的忠告豆:

@Bean
public Advice outboundFileCopyAdvice()
{
    ExpressionEvaluatingRequestHandlerAdvice advice = new ExpressionEvaluatingRequestHandlerAdvice();
    advice.setOnSuccessExpression("??");
    advice.setFailureChannel(fileCopySuccessChannel);
    advice.setOnFailureExpression("??");
    advice.setFailureChannel(fileCopyFailureChannel);

    return advice;
}


我想问一下我应该用什么表情代替“ ??”获取对Message<File>对象的引用。我发现我可以使用诸如“ payload.toString()”或“ headers ['someKey']”之类的表达式,但是我无法提出一个提供对整个消息对象的引用的表达式。

谢谢。

最佳答案

变量#root引用消息对象(表达式求值的根对象)。

payload.fooheaders['bar']#root.payload.foo(java:message.getPayload().getFoo())和#root.headers['bar'](java:message.getHeaders().get("bar"))的快捷方式。

SpEL Documentation here

09-28 06:32