Apache Camel의 Java DSL은 메서드 체이닝(Fluent API) 방식으로 라우팅 규칙을 정의합니다. IDE의 자동 완성 지원을 받을 수 있고, 컴파일 시점에 오류를 잡을 수 있어 실무에서 가장 많이 사용됩니다.
import org.apache.camel.builder.RouteBuilder;
@Component
public class ShopRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
// 오류 처리 전역 설정
errorHandler(deadLetterChannel("jms:queue:dead-letter")
.maximumRedeliveries(3)
.redeliveryDelay(1000));
// 라우트 정의
from("direct:newOrder")
.routeId("order-route")
.description("신규 주문 처리 라우트")
.log("신규 주문: ${body}")
.choice()
.when(simple("${body.amount} > 100000"))
.to("direct:vipOrder")
.otherwise()
.to("direct:normalOrder")
.end();
}
} from(uri): 라우트 시작점 정의to(uri): 메시지 전송 (동기)toD(uri): 동적 URI로 전송log(message): 로깅process(processor): 커스텀 처리transform(expression): 메시지 본문 변환setBody(expression): 본문 설정setHeader(name, expression): 헤더 설정filter(predicate): 조건부 필터링choice() / when() / otherwise(): 조건 분기direct: 컴포넌트는 동일한 CamelContext 내에서 라우트 간 직접 호출에 사용됩니다. 메서드 호출처럼 동기적으로 동작합니다.
from("direct:orderInput")
.to("direct:validateOrder")
.to("direct:saveOrder")
.to("direct:notifyUser");
from("direct:validateOrder")
.log("주문 유효성 검사 중...")
.bean(OrderValidator.class); DSL에서 조건이나 값을 지정할 때 다양한 표현식 언어를 사용할 수 있습니다.
// Simple 언어 (가장 많이 사용)
.when(simple("${header.orderType} == 'URGENT'"))
.setBody(simple("주문번호: ${header.orderId}, 금액: ${body.amount}"))
// Constant
.setHeader("source", constant("web-shop"))
// Bean 표현식
.setBody(method(MyBean.class, "processOrder"))
// SpEL (Spring Expression Language)
.when(spel("#{request.headers['user-agent'].contains('Mobile')}"))) 모든 라우트에는 고유 ID를 부여하는 것이 좋습니다. 모니터링, 동적 관리, 로그 추적에 필수적입니다.
from("timer:heartbeat?period=60000")
.routeId("system-heartbeat")
.routeGroup("monitoring")
.autoStartup(true)
.log("시스템 정상 동작 중"); from("direct:process")
.process(e -> {
String input = e.getIn().getBody(String.class);
e.getIn().setBody(input.trim().toUpperCase());
})
.log("처리 완료: ${body}"); AI가 해킹 도구로 진화했습니다. 27초 만에 공격 코드 작성, AI 봇의 랜섬웨어 협상, GPU 탈취까지—삼성SDS…
필기 시험의 접근통제 영역은 용어 하나만 알아도 풀리는 문제와 개념을 뒤집어 묻는 문제가 섞여 나옵니다.…
유튜브에 AI 자동 생성 영상이 넘쳐납니다. 진짜 크리에이터들은 어떻게 살아남아야 할까요? AI와 경쟁하는 3가지 생존…
이틀 전에 사이드카가 걸렸을 때만 해도 "한 번 놀란 장"으로 끝날 줄 알았는데요. 15일 아침…
오전 시황 글에 이어 장중 후속 정리입니다. 코스피는 개장 직후 5%대였던 낙폭이 오전 10시 전후에…
10월 15일 목요일 아침, 코스피가 전날 종가보다 5.59% 낮은 5,673.01로 출발했습니다. 장 시작 7분 만에…