Java tutorial
/* * 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; } } }