2016-07-05 3 views
1

Я использую Camel с Spring Boot. Я хочу установить параметр «connectionTimeToLive» для http-компонента в глобальной области действия, чтобы каждый вариант использования компонента имел возможность. Как я могу это сделать?Apache Camel - Как установить глобальные параметры компонента

ответ

2

Как работает Camel, вам нужно будет настроить это значение в заполнитель свойства.

Также вы можете определить конечные точки на верблюде, а не определять их прямо в маршрутах. (Например: <endpoint id="bla" uri="foo" .. />). Таким образом, вы можете ссылаться на них в нескольких местах.

Также, если вы хотите использовать эту конечную точку для нескольких хостов, тогда рассмотрите передачу таких вещей, как имя хоста и т. Д. В качестве заголовка. Например: Exchange.HTTP_PATH

Я не уверен, есть ли у Camel какой-либо другой подход Global config.

Cheers.

1

У вас есть несколько вариантов.

  1. Добавить его в реестр верблюдов и получить его оттуда.
  2. Добавьте его как свойство обмена на верблюдах.
  3. Извлечь его из файла свойств.
2

После прочтения тестового Camel, я нашел это решение с помощью пользовательской 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) { 

     } 
    }; 
} 
Смежные вопросы