Spring integration 可以调用链中的transformer通道进行日志记录吗? **

Spring integration 可以调用链中的transformer通道进行日志记录吗? **,spring-integration,Spring Integration,你不能;链中的端点通过匿名通道连接。你必须把你的链条分成两条,第一条的输出通道是第二条的输入通道;然后,你可以用电线点击那个频道 链是一个“黑匣子”。没有Spring集成——“本机”的方法(正如Gary所指出的),但您可以编写自己的日志激活器 <chain input-channel="afiHeadToHeaderChannel" output-channel="simResMsgOutBoundChannel"> <transformer ref="afiHeadT

你不能;链中的端点通过匿名通道连接。你必须把你的链条分成两条,第一条的输出通道是第二条的输入通道;然后,你可以用电线点击那个频道


链是一个“黑匣子”。

没有Spring集成——“本机”的方法(正如Gary所指出的),但您可以编写自己的日志激活器

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

和激活器代码:

<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" />
公共类日志激活器{
私有静态最终日志日志=LogFactory.getLog(LoggingActivator.class);
公共消息<?>handleMessage(最终消息<?>Message){
LOG.debug(消息);
返回消息;
}
}
不完全是;)当然,他不能使用日志通道适配器(出于您提到的原因),但他可以编写自己的处理程序。
public class LoggingActivator {
  private static final Log LOG = LogFactory.getLog(LoggingActivator.class);

  public Message< ? > handleMessage(final Message< ? > message) {
    LOG.debug(message);
    return message;
  }
}