程式化端點註冊

RabbitListenerEndpoint 提供 Rabbit 端點的模型,並負責設定該模型的容器。除了透過 RabbitListener 註解偵測到的端點外,基礎架構還允許您以程式化方式設定端點。以下範例示範如何執行此操作

@Configuration
@EnableRabbit
public class AppConfig implements RabbitListenerConfigurer {

    @Override
    public void configureRabbitListeners(RabbitListenerEndpointRegistrar registrar) {
        SimpleRabbitListenerEndpoint endpoint = new SimpleRabbitListenerEndpoint();
        endpoint.setQueueNames("anotherQueue");
        endpoint.setMessageListener(message -> {
            // processing
        });
        registrar.registerEndpoint(endpoint);
    }
}

在上述範例中,我們使用了 SimpleRabbitListenerEndpoint,它提供了實際要調用的 MessageListener,但您也可以建立自己的端點變體來描述自訂調用機制。

應該注意的是,您可以完全略過 @RabbitListener 的使用,並透過 RabbitListenerConfigurer 以程式化方式註冊您的端點。