在我的spring集成应用程序中,我有几个存储过程出站网关,我会记录每次调用的时间,任何帮助将不胜感激。 理想情况下,我希望能够启用/禁用所用参数的记录,时间和检索的总行数(返回结果集)以进行监视和性能调整。
由于
答案 0 :(得分:1)
您可以在请求通道中添加ChannelInterceptor
(ChannelInterceptorAdapter
的子类),它将为您提供原始时序(preSend / postSend),但时间将包括网关下游的任何处理(在直接渠道)。
由于您也想检查结果,您可以在请求通道上的拦截器(preSend)中启动计时器(例如Spring StopWatch
),并在响应通道上的拦截器中停止计时器)。如果使用相同的拦截器bean,则可以将计时器存储在ThreadLocal
。
您可以使用拦截器上的布尔属性打开/关闭集合。
或者,您可以向网关添加custom advice。
修改强>
建议可能是最好的方法,因为使用ThreadLocal
,您需要将代码添加到第一个拦截器以处理故障和清理。使用around建议,计时器只是一个本地方法变量。