在Apache Camel 3.17+中,是否有一种方法可以直接包含xml DSL路由定义,以便我可以在独立运行。
使用JAVA DSL,可以使用addRoutesBuilders()
将JAVA路由配置添加到Main()上下文中,如下面的示例所示。
我想把xml上下文直接添加到Main().
public class MainApp {
public static void main(String... args) throws Exception {
Main main = new Main();
main.configure().addRoutesBuilder(new MyRouteBuilder());
main.run(args);
}
}
public class MyRouteBuilder extends RouteBuilder {
public void configure() {
from("direct:start")
.to("mock:result");
}
}
是否可以使用camel-main
的路由定义在基于xml的DSL使用camelContext标签?
<!-- spring xmlns added removed here for make the xml brief -->
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"....
<camelContext xmlns = "http://camel.apache.org/schema/spring">
<route>
<from uri = "direct:input"/>
<log message = "log message for demo"/>
<to uri = "file:src/main/resources/data/"/>
</route>
</camelContext>
我们可以在pom.xml
中使用下面的依赖项。
camel-spring-xml
&camel-spring-main
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-main</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
</dependency>
- MainApp.java
import org.apache.camel.spring.Main;
public class MainApp {
public static void main(String... args) throws Exception {
Main main = new Main();
main.run(args);
}
}
- 通过在
resources/META-INF/spring/*.xml
中创建xml来自动扫描基于spring bean的配置。