Spring boot 从其他路由器引用路由器的apache camel java配置
我正在将ApacheCamel路由从XML转换为基于Java的路由。在XML中,我可以使用ref属性从另一个路由器引用一个路由器,如下面的小代码段:Spring boot 从其他路由器引用路由器的apache camel java配置,spring-boot,apache-camel,Spring Boot,Apache Camel,我正在将ApacheCamel路由从XML转换为基于Java的路由。在XML中,我可以使用ref属性从另一个路由器引用一个路由器,如下面的小代码段: <route> <from ref="process"/> <to ref="logging"/> </route> <route> <from ref="logging"/> <to uri="bean:xyz?method=hel
<route>
<from ref="process"/>
<to ref="logging"/>
</route>
<route>
<from ref="logging"/>
<to uri="bean:xyz?method=hello"/>
</route>
我想在其他路由中引用上面用Java创建的路由。我怎么做?我使用的是spring boot 1.4.3和camel 2.18.1
更新问题,因为我无法在注释中添加代码段
java类中有多个RoutesBuilder,我们根据条件创建每个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");
}
};
}
我们可以在configure方法中创建多个路由,但我的问题是如何在RouteBuilder bean中创建一个路由,而另一个路由是不同的RouteBuilder。首先,这段java代码正在创建RouteBuilder。我认为您的应用程序中不能有多个RouteBuilder。您在configure方法中所做的是创建路由。您可以在configure方法中写入任意数量的路由。你可以写另一行,比如
from("blah blah").to("xyz")
这应该有助于这一进程。
看一看我已经更新了问题,问题是指在RouteBuilder中创建的一条路由在不同RouteBuilder中的其他路由中,而不是关于在configure方法中创建多条路由
from("blah blah").to("xyz")