当前位置: 首页 > 面试题库 >

在Java中运行时添加camel路由

孔鸿远
2023-03-14
问题内容

如何在Java运行时添加camel路线?我找到了Grails示例,但是已经用Java实现了。

我的applicationContext.xml已经有一些预定义的静态路由,我想在运行时为其添加一些动态路由。可能吗?因为包括动态路由的唯一方法是编写route.xml,然后将路由定义加载到上下文。它如何在现有静态路由上工作?


问题答案:

你可以在CamelContext上简单地调用一些不同的API来添加路由…类似这样的东西

context.addRoutes(new MyDynamcRouteBuilder(context, "direct:foo", "mock:foo"));
....
private static final class MyDynamcRouteBuilder extends RouteBuilder {
    private final String from;
    private final String to;

    private MyDynamcRouteBuilder(CamelContext context, String from, String to) {
        super(context);
        this.from = from;
        this.to = to;
    }

    @Override
    public void configure() throws Exception {
        from(from).to(to);
    }
}


 类似资料:
  • 如何在Java的运行时添加骆驼路线?我找到了一个Grails示例,但我已经在Java实现了它。 我的应用程序上下文。xml已经有一些预定义的静态路由,我想在运行时向它添加一些动态路由。可能吗?因为包含动态路由的唯一方法是编写路由。然后将路由定义加载到上下文。它将如何在现有的静态路由上工作?运行时路由

  • 是否有可能在运行时为本机库添加新路径?。(而不是使用Java.library.path属性启动Java),因此在尝试查找时,调用将包含该路径。这是可能的,还是一旦JVM启动,这些路径就被冻结了?

  • 问题内容: 是否可以在运行时为本机库添加新路径?(而不是使用属性java.library.path启动Java),因此在尝试查找时,对的调用将包含该路径。这是可能的,还是在JVM启动后冻结了这些路径? 问题答案: [此解决方案不适用于Java 10+] 没有一点黑客(即访问ClassLoader类的私有字段)似乎是不可能的 该博客提供了两种方法。 作为记录,这是简短版本。 选项1: 用新值完全替换

  • 在java9之前,在运行时通过编程方式将外部jar添加到类路径中,每个人都使用: 现在使用java9我们遇到了问题: 在Java9中不再工作。在jdk9下,如何在运行时以编程方式向类路径添加外部jar?

  • 问题内容: 我的应用程序有一个模块,允许用户在运行时在jLayeredpane上添加jButton。我想向此动态添加的内容添加动作侦听器,而且我还必须提供在运行时删除动态添加的按钮的访问权限。有什么办法吗? 问题答案: 原始答案 总体上不错,但是在这种情况下做的却不同 为了跟踪添加的任意数量,您需要将它们保留在列表中。 因此,在创建新按钮之后,将侦听器添加到该按钮,然后将其添加到窗格中,然后需要将

  • 我知道ApplicationContext扩展点,如ApplicationContext事件和BeanFactoryPostProcessor。 我手头的问题是,在创建了一些bean之后,我需要添加bean,我想这会丢弃BeanFactoryPostProcessor选项,因为在应用程序上下文开始注册bean之前会发生这种情况。 我尝试在上下文刷新后添加一个singletonBean: