跳到主要内容
版本:4.1.1

编程式端点注册

Doubao 中英对照 Programmatic Endpoint Registration

RabbitListenerEndpoint 提供了 Rabbit 端点的模型,并负责为该模型配置容器。除了由 RabbitListener 注解检测到的端点之外,基础架构还允许你以编程方式配置端点。下面的示例展示了如何这样做:

@Configuration
@EnableRabbit
public class AppConfig implements RabbitListenerConfigurer {

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

在前面的示例中,我们使用了 SimpleRabbitListenerEndpoint,它提供要调用的实际 MessageListener;但你同样可以构建自己的端点变体,来描述自定义的调用机制。

备注

SimpleRabbitListenerEndpoint 定义必须提供 id 属性。

应当注意,你同样可以完全不使用 @RabbitListener,而通过 RabbitListenerConfigurer 以编程方式注册你的端点。