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

相关文章

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

MySQL 临时表与复制表操作全流程案例

《MySQL临时表与复制表操作全流程案例》本文介绍MySQL临时表与复制表的区别与使用,涵盖生命周期、存储机制、操作限制、创建方法及常见问题,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小... 目录一、mysql 临时表(一)核心特性拓展(二)操作全流程案例1. 复杂查询中的临时表应用2. 临时

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知