Я использовал весеннюю загрузку 2.2.4.RELEASE
и верблюжий вариант 2.23.0
Чтобы дать верблюду доступ к свойствам и использовать их в маршрутах Ури, используя {{ }}
добавление camel-spring-boot-starter
зависимости и определения PropertySourcesPlaceholderConfigurer
, SpringCamelContext
bean было достаточно, чтобы заставить его работать
@SpringBootApplication
@PropertySource(ignoreResourceNotFound = false, value= {"classpath:myProperties.properties"})
public class MyApp {
...
@Bean
public SpringCamelContext camelContext(ApplicationContext applicationContext) {
return new SpringCamelContext(applicationContext);
}
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
return new PropertySourcesPlaceholderConfigurer();
}
}
-
Теперь, после того как я обновил camel-spring-boot-starter
до 3.0.0-RC3
после руководство по миграции и после исправления импорта для компонентов. Во время выполнения верблюд не может найти свойства, и я получаю следующее:
Property with key [xxx] not found in properties from text: activemq:queue:{{xxx}}
Есть идеи, что изменилось и почему {{ }}
больше не работает в моих маршрутах?
ОБНОВЛЕНИЕ 1
Я обновил весеннюю загрузку до 2.2.6.RELEASE
и camel-spring-boot-starter
до 3.2.0
с org.apache.camel.springboot
Я все еще получаю то же самое ...
Маршруты не причудливы.
Мне нужно, чтобы {{ }}
прочитал xxx
значение из myProperties.properties
Используя @Value("${xxx}")
работает, пружина может получить к нему доступ, и я мог передать его в маршрут URI String.
Доступ к {{xxx}}
в верблюдах URI - это то, что перестало работать после обновления.
@Component
public class MyRoutes extends RouteBuilder {
@Override
public void configure() throws Exception {
from("activemq:queue:{{xxx}}")
.to("activemq:topic:targetTopic");
}
}
ОБНОВЛЕНИЕ 2
Я отразил тест, выполненный по принятому ответу. Удаление бобов SpringCamelContext
и PropertySourcesPlaceholderConfigurer
сделало свое дело.
Я удалил боб SpringCamelContext
, и это сработало. Очевидно, этот новый весенний верблюжий стартер сам позаботится о SpringCamelContext
, и мой компонент переопределил автоматическую конфигурацию, связанную со свойствами чтения верблюдов, используя {{ }}
. Я также удалил компонент PropertySourcesPlaceholderConfigurer
, и @Value не остановился работает.