spring camel 最简单的入门例子

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



    }
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值