apache camel开源的项目技术含量满满的
使用lamda 的方式进行数据操的方式
选择数据的id
判断是否为同一数据
是否状态相同的数据
代码量变少了功能没有变少
看起来更加直观了
路由加载文件的方式
测试路由是否成功加载的方式
通过配置文件的方式进行路由加载
基本案例
//创建一个
try (CamelContext camel = new DefaultCamelContext()) {
// 添加动态路由的
camel.addRoutes(createBasicRoute());
// 启动路由
camel.start();
// 延长10秒读取的方式
Thread.sleep(10_000);
}
static RouteBuilder createBasicRoute() {
return new RouteBuilder() {
@Override
public void configure() {
from("timer:foo")
.log("Hello Camel");
}
};
}
获取控制台输出的方式
使用stream组件读取数据信息的方式
// 启动一个camel组件
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
//读取控制台中的内容
<from uri="stream:in?promptMessage=Enter something: "/>
//使用js将读取内容将内容转化成大写的方式
<transform>
<simple>${body.toUpperCase()}</simple>
</transform>
//打印到控制台中
<to uri="stream:out"/>
</route>
</camelContext>
<!-- end::e1[] -->
public static void main(String[] args) throws Exception {
//默认会读取spring文件数据信息
Main main = new Main();
//启动文件
main.run();
}
camel的编译过程
通过maven插件生成camel脚本,生成的脚本会生产java源代码,进行java编译的方式
在这个目录下对生产的camel脚本文件进行调式
spring中如何使用camel文件的方式
//生成一个bean文件设置id的方式
<bean id="EmbeddedActiveMQ" class="org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ"
init-method="start" destroy-method="stop">
</bean>
//添加mq代理地址信息
<bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
<property name="connectionFactory">
<bean class="org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory">
<constructor-arg value="vm://0"/>
</bean>
</property>
</bean>
mq的实现方式
//配置一个mq的实现方式
public class MyRouteBuilder extends RouteBuilder {
//启动mq
public static void main(String[] args) throws Exception {
new Main().run(args);
}
@Override
public void configure() {
//向mq中添加消息
from("file:src/data?noop=true").
to("jms:test.MyQueue");
from("jms:test.MyQueue").
to("file://target/test");
//添加监听地址
from("file://target/test?noop=true").
bean(new SomeBean());
}
public static class SomeBean {
public void someMethod(String body) {
System.out.println("Received: " + body);
}
}
}