类型EnableBinding已弃用,类型StreamListener已弃用- Spring Cloud Stream.



我正在使用Spring Boot 2.4.2版本,并使用@InboundChannelAdapter进行Spring Cloud Stream和Spring Integration。

import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.messaging.Source;
import org.springframework.integration.annotation.InboundChannelAdapter;
@EnableBinding(value = Source.class)
public class TransactionPublisher {

@InboundChannelAdapter(channel = Source.OUTPUT)
public String sendTransactionDetails() {
return "{name:"T1", amount: "1000", transactionFor : "Purchase"}";
}
}

RabbitmqReceiverApplication.java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.cloud.stream.messaging.Sink;
@EnableBinding(value = Sink.class)
@SpringBootApplication
public class RabbitmqReceiverApplication {
public static void main(String[] args) {
SpringApplication.run(RabbitmqReceiverApplication.class, args);
}
@StreamListener(Sink.INPUT)
public void log(String message) {
System.out.println(message);
}
}

可以有什么替代方案?那么如何重构上面的代码呢?很多事情都在以难以理解的速度发生着。

参见文档

。在消费者方面……

@Bean
Consumer<String> log() {
return str -> {
System.out.println(str);
};
}

绑定名称为log-in-0

生产者端为绑定名称为sendTransactionDetails-out-0Supplier<String>bean。

相关内容

最新更新