com.vcredit.lrh.backend.RabbitConfiguration.java Source code

Java tutorial

Introduction

Here is the source code for com.vcredit.lrh.backend.RabbitConfiguration.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.vcredit.lrh.backend;

import com.vcredit.lrh.backend.message.listener.receiver.BaseReceiver;
import com.vcredit.lrh.rabbitmq.RabbitMQProperties;
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;

/**
 * @author Liu Jianwei<liujianwei@vcredit.com>
 * @date 2016-7-1
 */
@Configuration
@ComponentScan
@EnableConfigurationProperties({ RabbitMQProperties.class })
@EnableRabbit
public class RabbitConfiguration {

    @Autowired
    RabbitMQProperties rabbitMQProperties;

    @Autowired
    @Qualifier("appLogMessageReceiver")
    private BaseReceiver aPPLogMessageReceiver;

    @Autowired
    @Qualifier("scheduleTaskMessageReceiver")
    private BaseReceiver scheduleTaskMessageReceiver;

    @Bean
    public SimpleMessageListenerContainer appLogContainer(ConnectionFactory connectionFactory) {

        if (!StringUtils.isEmpty(rabbitMQProperties.getLogQueue())) {
            MessageListenerAdapter listener = new MessageListenerAdapter(aPPLogMessageReceiver, "receiveMessage");
            SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
            container.setConnectionFactory(connectionFactory);
            container.setQueueNames(rabbitMQProperties.getLogQueue());
            container.setMessageListener(listener);
            return container;
        } else {
            return null;
        }

    }

    @Bean
    public SimpleMessageListenerContainer scheduleTaskContainer(ConnectionFactory connectionFactory) {
        if (!StringUtils.isEmpty(rabbitMQProperties.getScheduleTaskQueue())) {
            MessageListenerAdapter listener1 = new MessageListenerAdapter(scheduleTaskMessageReceiver,
                    "receiveMessage");
            SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
            container.setConnectionFactory(connectionFactory);
            container.setQueueNames(rabbitMQProperties.getScheduleTaskQueue());
            container.setMessageListener(listener1);
            return container;
        } else {
            return null;
        }
    }

}