Есть ли способ добиться поведения приведенного ниже кода с помощью кода, управляемого аннотациями?
@Bean
@ServiceActivator(inputChannel = "toKafka")
public MessageHandler handler() throws Exception {
KafkaProducerMessageHandler<String, String> handler =
new KafkaProducerMessageHandler<>(kafkaTemplate());
handler.setTopicExpression(new LiteralExpression("someTopic"));
handler.setMessageKeyExpression(new LiteralExpression("someKey"));
handler.setSendSuccessChannel(success());
handler.setSendFailureChannel(failure());
return handler;
}
@Bean
public KafkaTemplate<String, String> kafkaTemplate() {
return new KafkaTemplate<>(producerFactory());
}
@Bean
public ProducerFactory<String, String> producerFactory() {
Map<String, Object> props = new HashMap<>();
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, this.brokerAddress);
// set more properties
return new DefaultKafkaProducerFactory<>(props);
}
Можно ли указать каналы успешной / неудачной отправки с помощью аннотаций Spring Integration?
IЯ хотел бы, насколько это возможно, поддерживать постоянную последовательность действий (например, указание потока сообщений) во всем приложении, и мне нравятся диаграммы интеграции Spring (например, как соединяются каналы), которые IntelliJ автоматически генерирует при настройкеприложение Spring Integration с аннотациями XML или Java.