Apache Camel - 如何设置全局组件选项

时间:2016-07-05 02:27:47

标签: apache-camel

我正在使用Camel和Spring Boot。我想在全局范围内为http组件设置“connectionTimeToLive”选项,以便组件的每次使用都具有该选项。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

Camel的工作方式,您必须在属性占位符中配置此值。

您也可以在camel中定义端点,而不是在路径中直接定义端点。 (例如:<endpoint id="bla" uri="foo" .. />)。这样您就可以在多个地方引用它们。

此外,如果要将此端点用于多个主机,请考虑将主机名等内容作为标头传递。例如:Exchange.HTTP_PATH

我不确定Camel是否有任何其他全局配置方法。

干杯。

答案 1 :(得分:2)

在阅读Camel测试用例后,我发现了使用Custom Camel上下文配置的解决方案:

@Bean
CamelContextConfiguration contextConfiguration() {
    return new CamelContextConfiguration() {
        @Override
        public void beforeApplicationStart(CamelContext context) {
            HttpComponent http = context.getComponent("http4", HttpComponent.class);
            http.setConnectionTimeToLive(5000);
        }

        @Override
        public void afterApplicationStart(CamelContext camelContext) {

        }
    };
}

答案 2 :(得分:1)

您有几种选择。

  1. 将其添加到camel注册表并从那里获取。
  2. 将其添加为Camel Exchange属性。
  3. 从属性文件中获取它。