天天看点

Apache Camel添加动态路由

方法一:

定义RoutBuilder的方法

public static void fun1(String[] args) throws Exception 
{
	ModelCamelContext context = new DefaultCamelContext();
	context.start();
	
	RouteBuilder route = new RouteBuilder() {
		public void configure() throws Exception {
			from("timer://aa?repeatCount=1").process(new Processor(){
				public void process(Exchange exchange) throws Exception 
				{
					System.out.println(exchange.getProperties());
					System.out.println(exchange.getIn().getHeaders());
					System.out.println("+++++++++++++");
				}
			});
		}
	};

	context.addRoutes(route);

	TimeUnit.SECONDS.sleep(20);

	context.stop();
}
           

方法二:

定义RouteDefinition的方法

public static void fun2(String[] args) throws Exception 
{
	ModelCamelContext context = new DefaultCamelContext();
	context.start();
	
	RouteDefinition rd = new RouteDefinition();
	rd.id("dynaRoute001").from("timer://aa?repeatCount=1").process(new Processor(){
		public void process(Exchange exchange) throws Exception 
		{
			System.out.println(exchange.getProperties());
			System.out.println(exchange.getIn().getHeaders());
			System.out.println("+++++++++++++");
		}
	});
	
	context.addRouteDefinition(rd);

	TimeUnit.SECONDS.sleep(20);

	context.stop();
}