В настоящее время я использую эту зависимость camel-kafka-starter maven для автоматической настройки моего верблюжьего компонента kafka в Spring Boot.
Если добавить, скажем, параметр, подобный этому camel.component.kafka.configuration.linger-ms=20
, Компонент camel kafka забирает его по маршруту, и я вижу его значение конфигурации в выходных данных журнала. например,
@Component
public class route extends RouteBuilder {
@Override
public void configure() throws Exception {
from("file://target/inbox")
.to("kafka:topic?brokers=localhost:9092");
}
}
Теперь, если я определю еще один компонент camelKafkaComponent, он потеряет автоконфигурацию! Я бы ожидал, что он сохранит настройки, определенные в application.propeties ...
@Configuration
public class MyConfiguration {
@Bean
public KafkaComponent myKafkaComponent() {
return new KafkaComponent(); //missing the linger-ms=20 i set in application.properties!
}
@Component
public class route extends RouteBuilder {
@Override
public void configure() throws Exception {
from("file://target/inbox")
.to("myKafkaComponent:topic?brokers=localhost:9092");
}
}
}
Есть ли способ сохранить автоконфигурацию с помощью некоторого параметра, например,
myKafkaComponent.useAutoConfig()
В идеале в моем приложении мой пользователь определил верблюжий kafkaComponent. Необходимо ли создать другой класс Config и отобразить все эти значения, определенные в документах для верблюдов? (с чем-то вроде String @Value аннотации)
edit: я смотрел на исходный код и также задавался вопросом, есть ли способ вызвать его в моем определении бина.