2016-12-29 2 views
0

현재 스프링 프로젝트를 봄 부팅으로 변환하고 동시에 모든 스프링 빈을 xml에서 java config 기반으로 변환하는 중입니다.apache camel config를 spring java 설정으로 변환

저는 낙타 xml 구성을 자바 기반 설정으로 변환하려고합니다.

현재 우리가 지정 낙타 설정, 경로 및 엔드 포인트, 여기

<camel:camelContext id="camelClient"> 
     <camel:template id="camelTemplate"/> 
    </camel:camelContext> 


     <template id="camelTemplate"/> 

아래와 같이 하나의 예는 엔드 포인트의 몇 가지 정의 된 경로

 <endpoint id="archiveUserQueue" 
        uri="swiftmq:${hk.jms.archive.queue.name}?concurrentConsumers=${hk.jms.archive.queue.consumers}"/> 

     <endpoint id="directSmsNotification" uri="direct:sendSMS"/> 

하나

 <route> 
      <from ref="directSmsNotification"/> 
      <to uri="bean:messengerService?method=sendSmsMessage"/> 
     </route> 

Java 코드에서 다음과 같이 끝점에 액세스합니다.

smsEndpoint = _camelContext.getEndpoint("directSmsNotification"); 

xml에서 camel 구성을 Java 기반 구성으로 변환하는 방법은 무엇입니까?

나는 http://camel.apache.org/spring-java-config.html에 명시된 지침을 따라 갔지만 나는 Camel에 익숙하지 않았기 때문에 이해하기가 너무 어려웠다.

답변

0

Spring Java 구성을 Apache Camel XML 구성과 혼합하여 사용할 수 있습니다. 나는 왜 당신이이 전환을 처음부터하고 있는지에 관해서 질문합니다.

즉, camel docs을 보면 RouteBuilder으로 작업하는 예가 있습니다.

또한 spring-boot application 샘플을 볼 수도 있습니다.

@Component 
public class MySpringBootRouter extends RouteBuilder { 

    @Override 
    public void configure() { 

     Context context = getContext(); 
     MyEndpoint ep = context.getEndpoint("someURI", MyEndpoint.class); 

     from(ep) 
      .transform().simple("ref:myBean") 
      .to("log:out"); 
    } 
} 

업데이트 : 다음은 그 예에서 수정 된 RouteBuilder입니다 내가 직접 엔드 포인트를 얻는 보여주기 위해 조각을 수정했습니다. Camel docs에서 자세한 정보를 얻을 수 있습니다. 나는이 접근법이 얼마나 일반적인 것인지 잘 모르겠습니다. 위로 Camel을 정기적으로 사용할 때 끝점은 URI 값을 통해 선언적으로 구성되었습니다. 필자는 Camel XML 또는 Java 코드에서 끝점을 명시 적으로 정의한 것으로 생각하지 않습니다. 유스 케이스가있을 것이라고 확신하지만 URI로 구성하는 것이 더 간단 할 수도 있습니다.

+0

프로젝트를 봄 부팅으로 변환 중이므로 낙타 경로와 끝점도 변환하고 있습니다. 나는 낙타 봄 부팅 예제를 보았고 대부분은 경로를 만드는 방법에 대한 예제가 있지만 그 중 어느 것도 끝점을 만드는 예제가 없습니다. 제공 한 예제에서는 경로를 만드는 방법을 보여줍니다. 비 xml 방식으로 끝점을 만드는 방법에 대한 예제를 제공해주십시오. – rpr