首页 > 代码库 > Camel运行示例

Camel运行示例

这是一个很简单的Camel例子,代码如下:

public static void main(String[] args) throws Exception {
	//创建Camel上下文
	DefaultCamelContext camelContext = new DefaultCamelContext();
	//添加一个路由,参数为路由建造者
	camelContext.addRoutes(new RouteBuilder() {
		@Override
		public void configure() throws Exception {
			this.from("file:H:/temp/in").process(new Processor() {
				@Override
				public void process(Exchange exchange) throws Exception {
					GenericFile<File> gf = exchange.getIn().getBody(GenericFile.class);
					File file = gf.getFile();
					PrintStream ps = new PrintStream(System.out);
					BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
					String line = null;
					while((line=br.readLine())!=null) {
						ps.println(line);
					}
					
					ps.close();
					br.close();
				}
			}).to("file:H:/temp/out");
		}
	});
	//启动上下文
	camelContext.start();
	//防止主线程退出
	Object object = new Object();
	synchronized (object) {
		object.wait();
	}
}

写这个例子的原因不在于说通过这个例子的表面能学到多少东西,而是要通过这个例子挖掘出其背后的运行机制与原理。这里配置的路由很简单,一个起始节点,一个处理器,一个目的节点,其目的就是将一个目录下的文件搬运到另一个文件夹,处理器只是将文件(限于文本文件)的内容打印到控制台。

这个例子虽然简单,但这也足以通过它来了解Camel的核心运行机制,且待下回分解。


Camel运行示例