Camel 3.x: отключить автоматическую регистрацию маршрутов

Я пытался перейти с Camel 2.x на 3.x, и у меня возникли проблемы с интеграцией Spring Boot.

В Camel 2.x мне удалось отключить автоматическую инъекцию RouteBuilder экземпляров, помеченных @Component, но имеющих другие преимущества, предоставляемые верблюжьей пружиной. Я делаю это, поскольку у меня есть прототип bean-компонента, который расширяется от RouteBuilder, и я вручную добавляю их в контекст верблюда по мере необходимости.

С Camel 3.x я не могу этого сделать. Я не могу удалить аннотацию @Component из класса, так как мне нужно Spring для добавления в класс других зависимостей. Есть ли способ сделать это с Camel 3.x?


person osmanates    schedule 10.04.2020    source источник
comment
Вроде нужно отключить авторегистрацию маршрутов. Я отредактировал заголовок вопроса, чтобы отразить это.   -  person Bedla    schedule 10.04.2020


Ответы (2)


Автоматическое обнаружение и регистрацию экземпляров RouteBuilder в CamelContext можно отключить с помощью свойства camel.springboot.routes-collector-enabled=false.

См. документы Camel Spring Boot:

camel.springboot.routes-collector-enabled

Включен ли сборщик маршрутов. При включении Camel будет автоматически обнаруживать маршруты (экземпляры RouteBuilder из реестра, а также загружать дополнительные маршруты XML из файловой системы. Сборщик маршрутов включен по умолчанию.

person Bedla    schedule 10.04.2020
comment
Спасибо. Вроде работает. Я действительно проверил свойства верблюда, но, кажется, пропустил это. - person osmanates; 11.04.2020

Чтобы отключить автоконфигурацию Camel (например, в тестах)

@EnableAutoConfiguration(exclude = CamelAutoConfiguration.class)
person v.ladynev    schedule 30.03.2021