这是一个很简单的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的核心运行机制,且待下回分解。