springboot集成消息队列配置

@Slf4j
@Configuration
public class AmqpRabbitConfig {

    private ConnectionFactory connectionFactory;

    @Autowired
    public AmqpRabbitConfig(ConnectionFactory connectionFactory) {
        this.connectionFactory = connectionFactory;
    }

    //调用模板配置
    @Bean
    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    public RabbitTemplate rabbitTemplate() {
        RabbitTemplate template = new RabbitTemplate(connectionFactory);
        return template;
    }

    /**
     * 针对消费者配置
     * FanoutExchange: 将消息分发到所有的绑定队列,无routingkey的概念
     * HeadersExchange :通过添加属性key-value匹配
     * DirectExchange:按照routingkey分发到指定队列
     * TopicExchange:多关键字匹配
     */
    @Bean
    public DirectExchange defaultExchange() {
        return new DirectExchange(RabbitExchange.SANDU_CLOUD_SEARCH);
    }

    //队列配置
    @Bean
    public Queue queue() {
        //队列持久配置true
        return new Queue(RabbitQueue.SANDU_CLOUD_SEARCH, true);

    }

    //绑定同城联盟交换器
    @Bean
    public Binding binding() {
        return BindingBuilder.bind(queue()).to(defaultExchange()).with(RabbitRoutingKey.SANDU_CLOUD_SEARCH);
    }
}

猜你喜欢

转载自blog.csdn.net/javaee_loser/article/details/81704249