Java Spring云流(Kafka)参数化指定的错误通道{destination}.{group}.errors

Java Spring云流(Kafka)参数化指定的错误通道{destination}.{group}.errors,java,spring,kafka-consumer-api,spring-kafka,spring-cloud-stream,Java,Spring,Kafka Consumer Api,Spring Kafka,Spring Cloud Stream,我正在尝试查看传递给@ServiceActivator的错误通道是否可以根据YAML中指定的值进行绑定/参数化,而不是在代码本身中硬编码实际目的地和使用者组 @ServiceActivator( // I do not want to hardcode destination and consumer group here inputChannel = "stream-test-topic.my-consumer-group.errors"

我正在尝试查看传递给@ServiceActivator的错误通道是否可以根据YAML中指定的值进行绑定/参数化,而不是在代码本身中硬编码实际目的地和使用者组

@ServiceActivator(
        // I do not want to hardcode destination and consumer group here
        inputChannel = "stream-test-topic.my-consumer-group.errors"
    )
    public void handleError(ErrorMessage errorMessage) {
        // Getting exception objects
        Throwable errorMessagePayload = errorMessage.getPayload();
        log.error("exception occurred", errorMessagePayload);

        // Get message body
        Message<?> originalMessage = errorMessage.getOriginalMessage();
        if (originalMessage != null) {
            log.error("Message Body: {}", originalMessage.getPayload());
        } else {
            log.error("The message body is empty");
        }
    }
@ServiceActivator(
//我不想在这里硬编码目的地和消费者组
inputChannel=“流测试主题。我的消费者组。错误”
)
公共无效句柄错误(ErrorMessage ErrorMessage){
//获取异常对象
Throwable errorMessagePayload=errorMessage.getPayload();
log.error(“发生异常”,errorMessagePayload);
//获取消息正文
Message originalMessage=errorMessage.getOriginalMessage();
if(originalMessage!=null){
错误(“消息体:{}”,originalMessage.getPayload());
}否则{
log.error(“消息正文为空”);
}
}

您不能使用
@ServiceActivator
;改用Java DSL:

@Value(“${error.channel}”)
字符串错误;
@豆子
公共集成流(){
返回IntegrationFlows.from(this.errors)
.handle(msg->{
System.out.println(msg);
})
.get();
}
设定

error:
  channel: stream-test-topic.my-consumer-group.errors