我必须使用基于功能的bean将使用Spring Cloud Stream发送RabbitMQ的代码从Spring Boot 2更新到Spring Boot 3
有人可以帮忙转换这个简化版本吗?
@EnableBinding(MySink.class)
public class RabbitMQReceiver {
@StreamListener(MySink.INPUT)
public void receiveMessage(String message) {
System.out.println("Received message: " + message);
}
}
interface MySink {
String INPUT = "input234242"; // The channel name
@Input(INPUT)
SubscribableChannel input();
}
如果你只是想将其转换为函数式风格,这样就可以了。
public class RabbitMQReceiver {
@Bean
public Consumer<String> receiveMessage() {
return s -> {
System.out.println("Received message: " + message);
};
}
}
及配置:
spring.cloud.function.definition: receiveMessage
spring.cloud.stream.bindings.receiveMessage-in-0.destination: <RabbitMQ Destination>
如果您想要激活多个功能bean,则只需定义
spring.cloud.function.definition
。