通过这简单的文件转例子了解camel的spring 配置 ,非常快便方便
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.peidw</groupId>
<artifactId>camelDemo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<camel.version>2.19.1</camel.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>${camel.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.5</version>
</dependency>
<!-- 集成Spring -->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
<version>${camel.version}</version>
</dependency>
<!-- HTTP组件-->
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-http</artifactId>
<version>${camel.version}</version>
</dependency>
</dependencies>
</project>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:camel="http://camel.apache.org/schema/spring"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"
default-autowire="byName" default-init-method="init">
<bean id="fileConverter" class="com.peidw.FileConvertProcessor"/>
<camelContext id="testCamelContext" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="file:d:/temp/inbox?delay=30000"/>
<process ref="fileConverter"/>
<to uri="file:d:/temp/outbox"/>
</route>
</camelContext>
</beans>
fileConverter接口实现类:FileConvertProcessor.java
package com.peidw;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* 文件转移 处理器
* Created by peidw on 2017-09-11.
*/
public class FileConvertProcessor implements Processor {
public void process(Exchange exchange) throws Exception {
InputStream body=null;
try {
body = exchange.getIn().getBody(InputStream.class);
BufferedReader in = new BufferedReader(new InputStreamReader(body));
StringBuffer strbf = new StringBuffer("");
String str = null;
str = in.readLine();
while (str != null) {
System.out.println(str);
strbf.append(str + " ");
str = in.readLine();
}
//exchange.getOut().setHeader(Exchange.FILE_NAME, "converted.txt");
System.out.println("文件名 : " + exchange.getIn().getHeader(Exchange.FILE_NAME));
System.out.println("绝对路径 : " + exchange.getIn().getHeader("CamelFileAbsolutePath"));
System.out.println("最后修改时间 : " + exchange.getIn().getHeader("CamelFileLastModified"));
System.out.println("文件大小: " + exchange.getIn().getHeader("CamelFileLength"));
exchange.getOut().setHeader(Exchange.FILE_NAME, exchange.getIn().getHeader(Exchange.FILE_NAME) );
// set the output to the file
exchange.getOut().setBody(strbf.toString());
} catch (IOException e) {
e.printStackTrace();
}finally {
body.close();
}
}
}
启动服务main类SpringCamelDemo.java
package com.peidw;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* spring+camel例子
* Created by peidw on 2017/9/17.
*/
public class SpringCamelDemo {
public static void main(String[] args){
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
while (true) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}