apache camel开源的项目技术含量满满的

apache camel开源的项目技术含量满满的

精选文章moguli202025-06-04 20:55:124A+A-





使用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);
        }
    }

}
点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2