Spring web集成rabbitmq代码实例

 更新时间:2020年01月21日 15:52:31   作者:护花使者  
这篇文章主要介绍了Spring web集成rabbitmq代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了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);
  }

}

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

相关文章

  • 探讨Java中函数是值传递还是引用传递问题

    探讨Java中函数是值传递还是引用传递问题

    这篇文章主要介绍了探讨Java中函数是值传递还是引用传递问题,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • java 后台将base64字符串保存为图片的方法

    java 后台将base64字符串保存为图片的方法

    本篇文章主要介绍了java 后台将base64字符串保存为图片的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Java(基于Struts2) 分页实现代码

    Java(基于Struts2) 分页实现代码

    这篇文章介绍了Java(基于Struts2) 分页实现代码,有需要的朋友可以参考一下
    2013-10-10
  • Struts2中validate数据校验的两种方法详解附Struts2常用校验器

    Struts2中validate数据校验的两种方法详解附Struts2常用校验器

    这篇文章主要介绍了Struts2中validate数据校验的两种方法及Struts2常用校验器,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-09-09
  • Java求出任意数字的各个位数之和方式

    Java求出任意数字的各个位数之和方式

    这篇文章主要介绍了Java求出任意数字的各个位数之和方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java中该如何优雅的使用线程池详解

    Java中该如何优雅的使用线程池详解

    在java开发中我们对“池”的概念并不陌生,常见的有数据库连接池、线程池、对象池、常量池等等,其作用基本上就是避免频繁的创建和回收,造成资源浪费,线程池也不例外,这篇文章主要给大家介绍了关于Java中该如何优雅的使用线程池的相关资料,需要的朋友可以参考下
    2021-12-12
  • java中split()方法以及常见算法经典案例

    java中split()方法以及常见算法经典案例

    这篇文章主要介绍了java中split()方法以及常见算法的相关资料,split()方法可以根据指定的正则表达式将字符串分割成多个子字符串,并返回一个字符串数组,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • Java缓冲字符流的实现示例

    Java缓冲字符流的实现示例

    本文详细介绍了Java缓冲字符流的使用,通过使用BufferedReader和BufferedWriter,可以更高效地处理文本数据,提高读写效率,感兴趣的可以了解一下
    2024-12-12
  • Spring中bean的生命周期之getSingleton方法

    Spring中bean的生命周期之getSingleton方法

    今天给大家带来的是关于Spring的相关知识,文章围绕着Spring中bean的生命周期之getSingleton方法展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Java foreach循环是否可以修改数据的值问题解决方法

    Java foreach循环是否可以修改数据的值问题解决方法

    最近在做项目的时候,需要修改一个数组里面各个元素的值,foreach循环迭代数组元素时,不能改变数组元素的值,这篇文章给大家介绍Java foreach循环是否可以修改数据的值的问题及解决方法,感兴趣的朋友一起看看吧
    2024-02-02

最新评论