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

相关文章

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis

MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固 通俗易懂版)

《MySQL中实现多表查询的操作方法(配sql+实操图+案例巩固通俗易懂版)》本文主要讲解了MySQL中的多表查询,包括子查询、笛卡尔积、自连接、多表查询的实现方法以及多列子查询等,通过实际例子和操... 目录复合查询1. 回顾查询基本操作group by 分组having1. 显示部门号为10的部门名,员

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.

使用Apache POI在Java中实现Excel单元格的合并

《使用ApachePOI在Java中实现Excel单元格的合并》在日常工作中,Excel是一个不可或缺的工具,尤其是在处理大量数据时,本文将介绍如何使用ApachePOI库在Java中实现Excel... 目录工具类介绍工具类代码调用示例依赖配置总结在日常工作中,Excel 是一个不可或缺的工http://