spring camel 最简单的入门例子

来源:互联网 发布:淘宝手机架 编辑:程序博客网 时间:2024/04/29 22:59

通过这简单的文件转例子了解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.xsdhttp://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();            }        }    }}