私はXMLからJavaベースのapache camelルートを変換中です。 XMLでは、私は下にある小さなコードスニペットのようにREF属性使用して別のルータからルータを参照することができます。今すぐ他のルータからルータを参照しているapache camel java config
<route>
<from ref="process"/>
<to ref="logging"/>
</route>
<route>
<from ref="logging"/>
<to uri="bean:xyz?method=hello"/>
</route>
を、私は私が使用している場合、私は他のルータからルータを参照することができる方法でオプションを見つけることができませんJava。
@Bean (name = "loggingRouter")
RoutesBuilder loggingRouter() {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("xyz")
.bean(abc, "log");
}
};
}
上記の作成されたルートを他のルートのJavaで参照したいと思います。どうしたらいいですか?私は春のブーツ1.4.3とラクダ2.18.1です。私は、コメント内のコードスニペットを追加することができなかったとして、質問を更新
、
我々は、Javaクラスで複数のRoutesBuilderを持っている、と私たちは中に複数の経路を作成することができます
@Bean (name = "abc")
@ConditionalOnProperty (name = "someproperty", havingValue = "true")
RoutesBuilder directSMSRouter() {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:sendSMS")
.bean(abc, "sendSmsMessage");
}
};
}
@Bean (name = "xyz")
@ConditionalOnExpression ("'${someproperty1}'.equalsIgnoreCase('true') ||" +
"'${someproperty2}'.equalsIgnoreCase('true') ||" +
"'${someproperty3}'.equalsIgnoreCase" +
"('true') || '${someproperty4}'.equalsIgnoreCase('true') ")
RoutesBuilder directEmailRouter() {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:sendEmail")
.bean(xyz, "sendMessage");
}
};
}
条件に基づいて、各を作成します方法を設定するが、私の問題は、私は1つのルートがすべてのRoutesBuilder
私は質問を更新しました。問題はRoutesBuilderの別のルートでRoutesBuilderで作成された参考ルートの1つで、別のRoutesBuilderで作成されました。 – prred