2016-12-29 19 views
0

現在のSpringプロジェクトをSpringブートに変換すると同時に、すべてのSpring Beanをxmlからjava configに変換しています。apache camelの設定をspring javaの設定に変更する

私はcamel xml設定をjavaベースの設定に変換しています。

現在、私たちが指定されているラクダの設定、ルートおよびエンドポイント、ここ

<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 configをjavaベースのconfigに変換するにはどうすればいいですか?

私はhttp://camel.apache.org/spring-java-config.htmlで指定された指示に従ってきましたが、私はキャメルに慣れていないので理解しがたいです。

答えて

0

Spring Java設定とApache Camel XML設定を混在させることができます。私は最初にこの変換をやっている理由について質問します。

つまり、camel docsを見ると、RouteBuilderの例があります。

また、サンプルspring-boot applicationを見ることもできます。ここではその一例から変更RouteBuilderです:

@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"); 
    } 
} 

更新:私は直接エンドポイントを取得して表示するようにスニペットを修正。 Camel docsで詳しい情報を入手できます。私はこのアプローチがどれほど共通しているのかよく分かりません。私がCamelを定期的に使用していたとき、エンドポイントはURI値によって宣言的に構成されました。 CamelのXMLコードまたはJavaコードでエンドポイントを明示的に定義したことはありません。私はそこにユースケースがあると確信していますが、URIだけで構成する方が簡単かもしれません。

+0

私はプロジェクトをスプリングブートに変換しています。そのため、ラクダのルートとエンドポイントも変換していました。私はラクダの春のブートの例を見てきましたが、そのほとんどにルートを作成する方法の例がありますが、エンドポイントを作成する例はありません。あなたが提供した例は、ルートを作成する方法を示しています。非XML形式でエンドポイントを作成する方法の例を挙げてください – rpr

関連する問題