Вот, пожалуйста.
Spring предлагает перехватчики для входящих и исходящих каналов.
Просто добавьте перехватчик, и вы будете готовы перехватывать каждое входящее и исходящее сообщение и делать все, что захотите.
Сначала ваша конфигурация:
...
@Autowired
private InboundMessagesChannelInterceptor inboundMessagesChannelInterceptor;
@Autowired
private OutboundMessagesChannelInterceptor outboundMessagesChannelInterceptor;
@Override
public void configureClientInboundChannel(ChannelRegistration registration) {
registration.interceptors(inboundMessagesChannelInterceptor);
}
@Override
public void configureClientOutboundChannel(ChannelRegistration registration) {
registration.interceptors(outboundMessagesChannelInterceptor);
}
...
и ваш перехватчик:
@Component
public class OutboundMessagesChannelInterceptor implements ChannelInterceptor {
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
// modify your message as needed
return message;
}
}
Вот так.