热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Rabbit整合spring(ssm)开发生产者

Rabbit整合spring(ssm)开发生产者本文做RabbitMQ和spring(ssm)整合是在原有的ssm项目框架的基础之上进行的,相关ssm的整合在这里我就不做详细的讲解

Rabbit整合spring(ssm)开发生产者

本文做RabbitMQ和spring(ssm)整合是在原有的ssm项目框架的基础之上进行的,相关ssm的整合在这里我就不做详细的讲解,直接整合RabbitMQ

1.收先加入整合RabbitMQ所需要的jar包,如果使用maven管理项目则添加jar包依赖

Rabbit整合spring(ssm)开发生产者

          
        <dependency>  
            <groupId>org.springframework.amqpgroupId>  
            <artifactId>spring-rabbitartifactId>  
            <version>1.3.5.RELEASEversion>  
        dependency>

 

2.开发rabbitMQ.properties和rabbitmq.xml并将rabbitmq.xml引入到spring主配置文件中去

rabbitMQ.properties

mq.host=10.199.203.161
mq.username=crs
mq.password=crs
mq.port=5672
#\u4e0b\u5355\u961f\u5217
mq.insertOrderQueueName=insertOrderQueue
mq.insertOrderQueueKey=551B3D4A88C47EDAE0530100007FC2EA
#\u652f\u4ed8\u8ba2\u5355\u961f\u5217
mq.orderPayQueueName=orderPayQueue
mq.orderPayQueueKey=f6da59e9b9434f25b4800b3363dec3e4

 

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

     
    <rabbit:connection-factory id="connectionFactory" host="${mq.host}" username="${mq.username}" password="${mq.password}" port="${mq.port}"/>
    
      
    <rabbit:admin id="connectAdmin" connection-factory="connectionFactory"/>  
    
        
    <bean id="ackManual"
        class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
        <property name="staticField"
            value="org.springframework.amqp.core.AcknowledgeMode.MANUAL" />
    bean>
    
      
    

     
     

  
      
    
    <rabbit:direct-exchange name="amqpExchange" durable="true" auto-delete="false">  
           
        <rabbit:bindings>

               
               

 
        rabbit:bindings>  
    rabbit:direct-exchange>  
  
     
    
    
      
    <rabbit:template id="amqpTemplate" connection-factory="connectionFactory"  
                     exchange="amqpExchange"/> 
      
beans>  

spring-config.xml

<import resource="rabbitmq.xml" />

3.发送消息

 //MQ发送消息
 PropertyUtil propertyUtil = new PropertyUtil();
 String queueKey=propertyUtil.getProperty("/rabbitMQ.properties", "mq.queueKey");
 mqProducer.sendDataToQueue(queueKey, JSONObject.toJSONString(order.getMqOrderInfo()));

MqProducterImpl.java

package com.wanda.crs.standard.service.impl;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.wanda.crs.common.BaseException;
import com.wanda.crs.standard.service.MQProducer;
import com.wanda.crs.utils.Contants;
@Service("mqProducer")
public class MQProducerImpl implements MQProducer {
    
    private static final Logger logger = LoggerFactory.getLogger(MQProducerImpl.class);
    
    @Autowired
    private AmqpTemplate amqpTemplate;
    
    @Override
    public void sendDataToQueue(String queueKey, Object object) throws Exception {
        try {
            amqpTemplate.convertAndSend(queueKey, object);
        } catch (Exception e) {
            logger.info(e.getLocalizedMessage());
            throw new Exception(Contants.MSG_MQ_SEND_ERROR);
        }
    }

}

 

MessageProducer.java文件(两种都可以)

package com.crs.ticket.utils.rubbitmq;

import javax.annotation.Resource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 功能概要:消息产生,提交到队列中去
 * 
 * @author pypua
 * @since  2017年7月16日 
 */
@Service
public class MessageProducer {
    
    private Logger logger = LoggerFactory.getLogger(MessageProducer.class);
@Autowired
    private RabbitTemplate rabbitTemplate;

    public void sendMessage(Object message){
      logger.info("to send message:{}",message);
      rabbitTemplate.convertAndSend("queuemqKey",message);
    }
}

 


推荐阅读
  • 解决基于XML配置的MyBatis在Spring整合中出现“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”问题的方法
    在将Spring与MyBatis进行整合时,作者遇到了“无效绑定语句(未找到):com.music.dao.MusicDao.findAll”的问题。该问题主要出现在使用XML文件配置DAO层的情况下,而注解方式配置则未出现类似问题。作者详细分析了两个配置文件之间的差异,并最终找到了解决方案。本文将详细介绍问题的原因及解决方法,帮助读者避免类似问题的发生。 ... [详细]
  • 从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南
    从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • Java中高级工程师面试必备:JVM核心知识点全面解析
    对于软件开发人员而言,随着技术框架的不断演进和成熟,许多高级功能已经被高度封装,使得初级开发者只需掌握基本用法即可迅速完成项目。然而,对于中高级工程师而言,深入了解Java虚拟机(JVM)的核心知识点是必不可少的。这不仅有助于优化性能和解决复杂问题,还能在面试中脱颖而出。本文将全面解析JVM的关键概念和技术细节,帮助读者全面提升技术水平。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法
    结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 进程(Process)是指计算机中程序对特定数据集的一次运行活动,是系统资源分配与调度的核心单元,构成了操作系统架构的基础。在早期以进程为中心的计算机体系结构中,进程被视为程序的执行实例,其状态和控制信息通过任务描述符(task_struct)进行管理和维护。本文将深入探讨进程的概念及其关键数据结构task_struct,解析其在操作系统中的作用和实现机制。 ... [详细]
  • 如何构建基于Spring MVC框架的Java Web应用项目
    在构建基于Spring MVC框架的Java Web应用项目时,首先应创建一个新的动态Web项目。接着,需将必要的JAR包导入至WebContent/WEB-INF/lib目录下,确保包括Spring核心库及相关依赖。如遇缺失的JAR包,可向社区求助或通过Maven等工具自动下载。正确配置后,即可开始搭建应用结构与功能模块。 ... [详细]
  • 本文深入探讨了Spring Cloud Eureka在企业级应用中的高级使用场景及优化策略。首先,介绍了Eureka的安全配置,确保服务注册与发现过程的安全性。接着,分析了Eureka的健康检查机制,提高系统的稳定性和可靠性。随后,详细讨论了Eureka的各项参数调优技巧,以提升性能和响应速度。最后,阐述了如何实现Eureka的高可用性部署,保障服务的连续性和可用性。通过这些内容,开发者可以更好地理解和运用Eureka,提升微服务架构的整体效能。 ... [详细]
  • 探讨Java中利用CXF与JAXRS实现Web服务请求及会话管理的常见问题与解决方案 ... [详细]
author-avatar
鱼儿玩玩
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有