- Transformation
- 바디 메시지를 변환하는 작업
- transformation 이후 바디 메시지가 변환됨
- Processing
- 바디 메시지를 변환하지 않고 어떠한 작업을 수행
bean 메소드를 이용한 Processing
@Component
public class ProcessingUsingBeanMethod extends RouteBuilder {
@Autowired
private SimpleLoggingProcessingComponent loggingComponent;
@Override
public void configure() throws Exception {
from("timer:nyj-timer")
.log("${body}")
.bean(loggingComponent)
.log("${body}")
.log("log:nyj-log");
}
@Component
class SimpleLoggingProcessingComponent {
private Logger logger = LoggerFactory.getLogger(SimpleLoggingProcessingComponent.class);
public void process(String message) {
logger.info("SimpleLoggingProcessingComponent : {}", message);
}
}
}
로그보기
// 원래의 바디 메시지
null
// processor에서의 로깅
SimpleLoggingProcessingComponent : null
// processor 이후의 바디 메시지
// processor는 작업 이후에도 바디 메시지가 변하지 않는다.
null
process 메소드를 이용한 Processing
@Component
public class ProcessingUsingProcessMethod extends RouteBuilder{
@Override
public void configure() throws Exception {
from("timer:nyj-timer")
.log("${body}")
.process(new SimpleLoggingProcessor())
.log("${body}")
.log("log:nyj-log");
}
public class SimpleLoggingProcessor implements Processor {
private Logger logger = LoggerFactory.getLogger(SimpleLoggingProcessor.class);
@Override
public void process(Exchange exchange) throws Exception {
logger.info("SimpleLoggingProcessingComponent : {}", exchange);
logger.info("SimpleLoggingProcessingComponent : {}", exchange.getMessage().getBody());
}
}
}
로그보기
// 원래의 바디 메시지
null
// processor에서의 로깅
// exchange 자체 로깅
SimpleLoggingProcessingComponent : Exchange[]
// exchange의 바디 메시지만 로깅
SimpleLoggingProcessingComponent : null
// procesoor 이후의 바디 메시지
null