链中的变压器可以调用通道进行日志记录


<chain input-channel="afiHeadToHeaderChannel" output-channel="simResMsgOutBoundChannel">
    <transformer ref="afiHeadToHeaderTransform" />
    **<transformer ref="fixedToMapTransform"**  
    <transformer ref="simReqResTransform" />
    <transformer ref="mapToFixedTransform" />
    <transformer ref="headerToAfiHeadTransform" />
</chain>

执行转换器"fixedToMapTransform"后,我想使用消息进行记录。我该如何解决这个问题?

没有Spring Integration-"本机"方法可以做到这一点(正如Gary指出的那样),但您可以编写自己的日志记录激活器。

<chain input-channel="afiHeadToHeaderChannel" output-channel="simResMsgOutBoundChannel">
    <transformer ref="afiHeadToHeaderTransform" />
    <transformer ref="fixedToMapTransform"/>
    <service-activator ref="loggingActivator" method="handleMessage" />
    <transformer ref="simReqResTransform" />
    <transformer ref="mapToFixedTransform" />
    <transformer ref="headerToAfiHeadTransform" />
</chain>
<beans:bean id="loggingActivator" class="com.mycompany.LoggingActivator" />

和激活器代码:

public class LoggingActivator {
  private static final Log LOG = LogFactory.getLog(LoggingActivator.class);
  public Message< ? > handleMessage(final Message< ? > message) {
    LOG.debug(message);
    return message;
  }
}

你不能;链中的端点与匿名通道连接。您必须将链一分为二,第一个的输出通道是第二个的输入通道;然后,您可以窃听该频道。

链条是一个"黑匣子"。

最新更新