将 Spring Cloud Stream 代码转换为基于 Spring boot 3 的功能

问题描述 投票:0回答:1

我必须使用基于功能的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();
}
java spring spring-cloud-stream
1个回答
0
投票

如果你只是想将其转换为函数式风格,这样就可以了。

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

© www.soinside.com 2019 - 2024. All rights reserved.