public interface ChannelInterceptor {
Message<?> preSend(Message<?> message, MessageChannel channel);
// message가 channel로 전송되기 전에 호출
void postSend(Message<?> message, MessageChannel channel, boolean sent);
// send 호출 직후에 호출
void afterSendCompletion(Message<?> message, MessageChannel channel, boolean sent, Exception ex);
// 발생한 예외에 관계없이 send 완료 후 호출
boolean preReceive(MessageChannel channel);
// Receive가 호출 된 후 message가 검색되기 전에 호출
Message<?> postReceive(Message<?> message, MessageChannel channel);
// message가 검색된 후 호출자에게 반환되기 전에 호출
void afterReceiveCompletion(Message<?> message, MessageChannel channel, Exception ex);
// 발생한 예외에 관계 없이 receive 완료 후 호출
}
setInterceptors 메소드를 사용해 인터셉트 설정