消息队列

生产者接口与实现:

public interface MessageProducer
{
    	void sendMessage(String queue, Object message) throws AmqpException;
}

 

/**
 * 消息生产者
 */
public class MessageProducerImpl implements MessageProducer
{
    private RabbitTemplate rabbitTemplate;

    @Override
	public void sendMessage(String queue, Object message) throws AmqpException {
    		rabbitTemplate.convertAndSend(queue, message);
	}
	public void setRabbitTemplate(RabbitTemplate rabbitTemplate) {
		this.rabbitTemplate = rabbitTemplate;
	}
	public RabbitTemplate getRabbitTemplate() {
		return rabbitTemplate;
	}
}

 xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:rabbit="http://www.springframework.org/schema/rabbit"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/rabbit
        http://www.springframework.org/schema/rabbit/spring-rabbit-1.1.xsd">

    <bean id="messageProducer" class="com.producer.MessageProducerImpl">
        <property name="rabbitTemplate" ref="rabbitTemplate"/>
    </bean>

    <rabbit:connection-factory id="connectionFactory" addresses="${mq.conn.addresses}" />
    <rabbit:template id="rabbitTemplate" connection-factory="connectionFactory"/>
</beans>

 消费者:

/**
 * 消息消费者
 */
public class MqConsumer
{
    public void handleMessage(String message)
    {
         System.out.println(message);
     }
}

 xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rabbit="http://www.springframework.org/schema/rabbit"
	xsi:schemaLocation="
       http://www.springframework.org/schema/rabbit
       http://www.springframework.org/schema/rabbit/spring-rabbit-1.1.xsd
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

	<rabbit:connection-factory id="connectionFactory" addresses="${mq.conn.addresses}" />
	<rabbit:template id="amqpTemplate" connection-factory="connectionFactory"/>
	<rabbit:admin connection-factory="connectionFactory" />

	<rabbit:listener-container connection-factory="connectionFactory" >
		<rabbit:listener queues="${mq.queue.mq.name}" ref="mqConsumer" method="handleMessage" />
			</rabbit:listener-container>
	<bean id="rabbitTxManager"
		class="org.springframework.amqp.rabbit.transaction.RabbitTransactionManager">
		<property name="connectionFactory" ref="connectionFactory" />
	</bean>
	<bean id="mqConsumer" class="com.consumer.MqConsumer"></bean>
	<rabbit:queue name="${mq.queue.mq.name}" />
</beans>

 

 properties:

mq.conn.addresses = 192.168.1.206:5672,192.168.1.208:5672
mq.queue.mq.name = queue_name

 

你可能感兴趣的:(消息队列)