[CAMEL] Processing
転送と処理の違い
beanメソッドによる処理
@Component
public class ProcessingUsingBeanMethod extends RouteBuilder {
// Bean 주입받기
@Autowired
private SimpleLoggingProcessingComponent loggingComponent;
@Override
public void configure() throws Exception {
// 1) starting end point 정의
from("timer:nyj-timer") // null
.log("${body}")
// 2) bean({클래스객체명})
.bean(loggingComponent) // null
.log("${body}")
// 3) ending end point 정의
.log("log:nyj-log");
}
// 사용할 Bean
@Component
class SimpleLoggingProcessingComponent {
private Logger logger = LoggerFactory.getLogger(SimpleLoggingProcessingComponent.class);
// 파라미터로 받아온 message : 바디 메시지
public void process(String message) {
logger.info("SimpleLoggingProcessingComponent : {}", message); // SimpleLoggingProcessingComponent : null
}
}
}
ログの表示
// 원래의 바디 메시지
null
// processor에서의 로깅
SimpleLoggingProcessingComponent : null
// processor 이후의 바디 메시지
// processor는 작업 이후에도 바디 메시지가 변하지 않는다.
null
プロセスメソッドによる処理
@Component
public class ProcessingUsingProcessMethod extends RouteBuilder{
@Override
public void configure() throws Exception {
// 1) starting end point 정의
from("timer:nyj-timer") // null
.log("${body}")
// 2) bean({클래스객체명})
.process(new SimpleLoggingProcessor())
.log("${body}")
// 3) ending end point 정의
.log("log:nyj-log");
}
// Process를 구현하는 Processor 클래스
public class SimpleLoggingProcessor implements Processor {
private Logger logger = LoggerFactory.getLogger(SimpleLoggingProcessor.class);
@Override
public void process(Exchange exchange) throws Exception {
// exchange : exchange 전체를 가져옴
logger.info("SimpleLoggingProcessingComponent : {}", exchange); // SimpleLoggingProcessingComponent : Exchange[]
// exchange.getMessage().getBody() : 바디 메시지만 가져옴
logger.info("SimpleLoggingProcessingComponent : {}", exchange.getMessage().getBody()); // SimpleLoggingProcessingComponent : null
}
}
}
ログの表示
// 원래의 바디 메시지
null
// processor에서의 로깅
// exchange 자체 로깅
SimpleLoggingProcessingComponent : Exchange[]
// exchange의 바디 메시지만 로깅
SimpleLoggingProcessingComponent : null
// procesoor 이후의 바디 메시지
null
Reference
この問題について([CAMEL] Processing), 我々は、より多くの情報をここで見つけました https://velog.io/@namyj97/CAMEL-Processingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol