Camel 라우트에서 bean("myBean")처럼 이름으로 Bean을 참조할 때, Camel은 Bean Registry에서 해당 Bean을 찾습니다. 실행 환경에 따라 다른 Registry가 사용됩니다.
Spring Boot 환경에서 가장 많이 사용됩니다. Spring의 ApplicationContext가 Bean Registry 역할을 합니다.
@Bean
public OrderService orderService() {
return new OrderService();
}
// 라우트에서 이름으로 참조
from("direct:input")
.bean("orderService", "process"); SimpleRegistry registry = new SimpleRegistry();
registry.bind("myService", new MyService());
CamelContext context = new DefaultCamelContext(registry);
context.addRoutes(new RouteBuilder() {
@Override
public void configure() {
from("direct:start")
.bean("myService");
}
}); JndiRegistry registry = new JndiRegistry();
// JNDI 컨텍스트에 등록된 Bean을 자동으로 사용
from("direct:start")
.bean("java:comp/env/myService"); // Quarkus + Camel
@ApplicationScoped
public class MyRoute extends RouteBuilder {
@Inject
OrderService orderService;
@Override
public void configure() {
from("direct:start")
.bean(orderService); // 주입받은 Bean 직접 사용
}
} 메서드명을 지정하지 않으면 Camel은 다음 순서로 적합한 메서드를 찾습니다.
public class MultiMethodBean {
@Handler // Camel이 이 메서드를 선택
public Order processOrder(Order order) {
return doProcess(order);
}
public String validateOrder(Order order) { // Camel이 무시
return "valid";
}
} public class TypeMatchingBean {
public String process(String text) { // String 본문일 때
return text.toUpperCase();
}
public Order process(Order order) { // Order 객체 본문일 때
return processOrder(order);
}
public void process(InputStream is) { // InputStream 본문일 때
readStream(is);
}
}
// Camel이 본문 타입을 보고 적절한 오버로드 메서드를 자동 선택
from("direct:start")
.bean(TypeMatchingBean.class); // 메서드명 지정 불필요 // 문제: 오버로드된 메서드가 여러 개 → 예외 발생 가능
public class AmbiguousBean {
public String process(String s) { ... }
public String process(Integer i) { ... }
}
// 해결 1: 메서드명과 시그니처 명시
from("direct:start")
.bean(AmbiguousBean.class, "process(String)");
// 해결 2: 먼저 타입 변환
from("direct:start")
.convertBodyTo(String.class)
.bean(AmbiguousBean.class, "process"); 구글·IBM·삼성이 AI를 이유로 대규모 감원을 시작했습니다. 맥킨지·골드만삭스·옥스퍼드 연구 데이터로 보는 직종별 AI 대체 타임라인과 살아남는…
SKT 유심 해킹 2,300만 명, 다크웹 개인정보 거래 실태까지. 내 정보 유출 여부 즉시 확인하는…
하드웨어 스펙 경쟁은 끝났습니다. AI 생태계, 프리미엄 수익, 중국 변수까지. 2025년 삼성 vs 애플 진짜…
전 세계 검색 92%를 장악한 구글의 왕좌가 흔들리기 시작했습니다. AI 검색이 구글을 집어삼키는 속도와 진짜…