Apache Camel 最简单入门教程案例

2023-12-18 13:18

本文主要是介绍Apache Camel 最简单入门教程案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

apache camel 案例,包含与 mysql,activeMQ等的使用案例,可以看下,简单易懂!!!

maven配置

<dependencies><!-- https://mvnrepository.com/artifact/org.apache.camel/camel-core --><dependency><groupId>org.apache.camel</groupId><artifactId>camel-core</artifactId><version>2.22.0</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.activemq/activemq-camel --><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-camel</artifactId><version>5.15.13</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.camel/camel-jdbc --><dependency><groupId>org.apache.camel</groupId><artifactId>camel-jdbc</artifactId><version>2.22.1</version></dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency>
</dependencies>
example1
package top.daocaor.example1;import org.apache.camel.builder.RouteBuilder;public class HelloWorldRoute extends RouteBuilder {public void configure() throws Exception {System.out.println("hello world camel");}
}
package top.daocaor.example1;import org.apache.camel.CamelContext;
import org.apache.camel.impl.DefaultCamelContext;public class HelloWorld {public static void main(String[] args) throws Exception {CamelContext context = new DefaultCamelContext();context.addRoutes(new HelloWorldRoute());context.start();}
}
运行结果

在这里插入图片描述

example2
package top.daocaor.example2;import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;public class FileCopy {public static void main(String[] args) throws Exception {CamelContext camelContext = new DefaultCamelContext();camelContext.addRoutes(new RouteBuilder() {@Overridepublic void configure() throws Exception {from("file:input_box?noop=true").to("file:output_box");}});while (true)camelContext.start();}
}
运行结果

在这里插入图片描述

example3
package top.daocaor.example3;import org.apache.camel.*;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;public class ProAndConsumeExample {public static void main(String[] args) throws Exception {CamelContext context = new DefaultCamelContext();context.addRoutes(new RouteBuilder() {@Overridepublic void configure() throws Exception {from("direct:start").process(new Processor() {public void process(Exchange exchange) throws Exception {//System.out.println(" I am the processor ... ");String message = exchange.getIn().getBody(String.class);message = message + "-by daocaor";exchange.getOut().setBody(message);}}).to("seda:end");}});context.start();ProducerTemplate producerTemplate = context.createProducerTemplate();producerTemplate.sendBody("direct:start","Hello Everyone");ConsumerTemplate consumerTemplate = context.createConsumerTemplate();String message =  consumerTemplate.receiveBody("seda:end",String.class);System.out.println(message);}
}
运行结果

在这里插入图片描述

ActiveMQ
package top.daocaor.example4;import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.ConsumerTemplate;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jms.JmsComponent;
import org.apache.camel.impl.DefaultCamelContext;import javax.jms.ConnectionFactory;public class ActiveMQConsume {public static void main(String[] args) throws Exception {CamelContext context = new DefaultCamelContext();ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();context.addComponent("jms", JmsComponent.jmsComponentClientAcknowledge(connectionFactory));context.addRoutes(new RouteBuilder() {@Overridepublic void configure() throws Exception {from("activemq:queue:my_queue").to("seda:end");}});context.start();ConsumerTemplate consumerTemplate = context.createConsumerTemplate();String message = consumerTemplate.receiveBody("seda:end",String.class);System.out.println(message);}
}
package top.daocaor.example4;import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jms.JmsComponent;
import org.apache.camel.impl.DefaultCamelContext;import javax.jms.ConnectionFactory;public class FileToActiveMQ {public static void main(String[] args) throws Exception {CamelContext context = new DefaultCamelContext();ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();context.addComponent("jms", JmsComponent.jmsComponentClientAcknowledge(connectionFactory));context.addRoutes(new RouteBuilder() {@Overridepublic void configure() throws Exception {from("file:input_box?noop=true").to("activemq:queue:my_queue");}});while (true)context.start();}
}
package top.daocaor.example4;import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jms.JmsComponent;
import org.apache.camel.impl.DefaultCamelContext;import javax.jms.ConnectionFactory;
import java.util.Date;public class ObjectToActiveMQ {public static void main(String[] args) throws Exception {CamelContext context = new DefaultCamelContext();ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();context.addComponent("jms", JmsComponent.jmsComponentClientAcknowledge(connectionFactory));context.addRoutes(new RouteBuilder() {@Overridepublic void configure() throws Exception {from("direct:start").to("activemq:queue:my_queue");}});context.start();ProducerTemplate producerTemplate = context.createProducerTemplate();producerTemplate.sendBody("direct:start","246307");}
}
CallMethodUsingClassComponent
package top.daocaor.example5;import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.SimpleRegistry;public class CallMethodUsingClassComponent {public static void main(String[] args) throws Exception {
//        CamelContext context = new DefaultCamelContext();
//
//
//        context.addRoutes(new RouteBuilder() {
//            @Override
//            public void configure() throws Exception {
//                from("direct:start")
//                        .to("class:top.daocaor.example5.MyService?method=doSomething");
//            }
//        });
//
//        context.start();
//
//        ProducerTemplate producerTemplate = context.createProducerTemplate();
//        producerTemplate.sendBody("direct:start","Hello");MyService myService = new MyService();SimpleRegistry registry = new SimpleRegistry();registry.put("myService",myService);CamelContext context = new DefaultCamelContext(registry);context.addRoutes(new RouteBuilder() {@Overridepublic void configure() throws Exception {from("direct:start").to("bean:myService?method=doSomething");}});context.start();ProducerTemplate producerTemplate = context.createProducerTemplate();producerTemplate.sendBody("direct:start","Hello");}
}
package top.daocaor.example5;public class MyService {public void doSomething(String message){System.out.println(message);}
}
SQLOperation
package top.daocaor.example6;import java.util.List;public class ResultHandler {public void printResult(List list){for(int i = 0 ; i < list.size() ; ++ i ){System.out.println(list.get(i));}}
}
package top.daocaor.example6;import com.mysql.cj.jdbc.MysqlDataSource;
import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.SimpleRegistry;public class SQLOperation {public static void main(String[] args) throws Exception {MysqlDataSource dataSource = new MysqlDataSource();dataSource.setUrl("jdbc:mysql://localhost:3306/camel_tutorial");dataSource.setUser("root");dataSource.setPassword("root");SimpleRegistry registry = new SimpleRegistry();registry.put("myDataSource",dataSource);CamelContext context = new DefaultCamelContext(registry);context.addRoutes(new RouteBuilder() {@Overridepublic void configure() throws Exception {from("direct:start").to("jdbc:myDataSource").bean(new ResultHandler(),"printResult");}});context.start();ProducerTemplate producerTemplate = context.createProducerTemplate();producerTemplate.sendBody("direct:start","select * from tableName");}
}

这篇关于Apache Camel 最简单入门教程案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/508517

相关文章

SpringBoot实现动态插拔的AOP的完整案例

《SpringBoot实现动态插拔的AOP的完整案例》在现代软件开发中,面向切面编程(AOP)是一种非常重要的技术,能够有效实现日志记录、安全控制、性能监控等横切关注点的分离,在传统的AOP实现中,切... 目录引言一、AOP 概述1.1 什么是 AOP1.2 AOP 的典型应用场景1.3 为什么需要动态插

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误