欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring web集成rabbitmq代码实例

程序员文章站 2022-03-11 21:17:31
这篇文章主要介绍了spring web集成rabbitmq代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 引入java包:...

这篇文章主要介绍了spring web集成rabbitmq代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

引入java包:

本项目中仅引入了四个java包:amqp-client-5.7.3.jar,spring-rabbit-2.2.2.release.jar,spring-retry-1.2.4.release.jar,spring-amqp-2.2.2.release.jar

spring-rabbitmq.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.xsd http://www.springframework.org/schema/rabbit http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">

  <!--配置connection-factory,指定连接rabbit server参数 -->
  <rabbit:connection-factory id="connectionfactory"
                username="guest" password="guest" host="localhost" port="5672" />

  <!--定义rabbit template用于数据的发送 -->
  <rabbit:template id="amqptemplate" connection-factory="connectionfactory"
           exchange="exchangetest" />

  <!--通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成 -->
  <rabbit:admin connection-factory="connectionfactory" />

  <!--定义queue -->
  <rabbit:queue name="queuetest" durable="true" auto-delete="false" exclusive="false" />

  <!-- 定义direct exchange,绑定queuetest -->
  <rabbit:direct-exchange name="exchangetest" durable="true" auto-delete="false">
    <rabbit:bindings>
      <rabbit:binding queue="queuetest" key="queuetestkey"></rabbit:binding>
    </rabbit:bindings>
  </rabbit:direct-exchange>

  <!-- 消息接收者 -->
  <bean id="messagereceiver" class="club.codeapes.web.core.rabbitmq.rabbitmqmessageconsumer"></bean>

  <!-- queue litener 观察 监听模式 当有消息到达时会通知监听在对应的队列上的监听对象-->
  <rabbit:listener-container connection-factory="connectionfactory">
    <rabbit:listener queues="queuetest" ref="messagereceiver"/>
  </rabbit:listener-container>

</beans>

spring中需要引入这个xml, 主要在总spring.xml。或者web.xml中需要引入下。

rabbitmqmessageconsumer

package club.codeapes.web.core.rabbitmq;

import club.codeapes.common.date.dateutil;
import com.alibaba.fastjson.json;
import org.springframework.amqp.core.message;
import org.springframework.amqp.core.messagelistener;

public class rabbitmqmessageconsumer implements messagelistener {

  @override
  public void onmessage(message message) {
    system.out.println("消费信息," + dateutil.getnow("yyyy-mm-dd hh:mm:ss") + "---->" + message);
  }

}

rabbitmqmessageproducer:

package club.codeapes.web.core.rabbitmq;

import org.springframework.amqp.core.amqptemplate;
import org.springframework.beans.factory.annotation.autowired;
import org.springframework.stereotype.repository;


@repository
public class rabbitmqmessageproducer{

  @autowired
  private amqptemplate amqptemplate;

  public void sendmessage(object message) {
    system.out.println("to send message:" + message);
    amqptemplate.convertandsend("queuetestkey", message);
  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。