gpt4 book ai didi

在 Camel 中使用 Bean 组件

转载 作者:知者 更新时间:2024-03-12 08:30:09 24 4
gpt4 key购买 nike

Bean 组件可以用作Camel路由的一部分,以过滤/拦截路由中包含的数据的有效负载。 让我们看一个非常简单的例子。

此示例的目的是将文本文件中包含的货币从美元转换为欧元。 完成这项工作的 bean 是 MoneyConverter,它需要存储在 org.apache.camel.impl.SimpleRegistry 中才能在我们的路由中使用

import org.apache.camel.CamelContext;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.SimpleRegistry;

public class JavaRouter {
  public static void main(String[] args) throws Exception {
    SimpleRegistry registry = new SimpleRegistry();
    registry.put("moneyConverter", new MoneyConverter());
    CamelContext context = new DefaultCamelContext(registry);
    context.addRoutes(new MyRouteBuilder());
    context.start();
    Thread.sleep(3000);
    context.stop();
  }
}

MoneyConverter 类的核心是将接收到的有效负载从一种货币转换为另一种货币:

public class MoneyConverter {
  public String convertValue(String data) throws Exception {
    double amount = (Integer.parseInt(data.replace("$", "").trim()) * 0.9);
    System.out.println("amount " + amount);
    return "€ " + amount;
  }
}

RouteBuilder 类通过在路由中包含对 MoneyConverter 及其方法 convertValue 的引用来驱动执行:

import org.apache.camel.builder.RouteBuilder;

public class MyRouteBuilder extends RouteBuilder {
  @Override
  public void configure() throws Exception {
    from("file:/var/data/in?noop=true")
        .beanRef("moneyConverter", "convertValue")
        .to("file:/var/data/out");
  }
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com