博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring整合activemq发布订阅消息模式
阅读量:7053 次
发布时间:2019-06-28

本文共 2582 字,大约阅读时间需要 8 分钟。

hot3.png

maven引用

org.apache.activemq
activemq-pool
5.9.0
org.apache.activemq
activemq-all
5.9.0
org.springframework
spring-jms
4.3.3.RELEASE

提供者配置文件(含订阅者配置文件)

JMS配置

provider

package com.cloud.cloudmanage.mq.produce;import java.io.Serializable;import javax.annotation.Resource;import javax.jms.Destination;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jms.core.JmsTemplate;import org.springframework.stereotype.Component;@Component("updateDecisionFileProduce")public class UpdateDecisionFileProduce {	@Autowired(required = false)	@Resource(name = "jmsTemplatePubSub")	private JmsTemplate jmsTemplate;	public JmsTemplate getJmsTemplate() {		return jmsTemplate;	}	public void setJmsTemplate(JmsTemplate jmsTemplate) {		this.jmsTemplate = jmsTemplate;	}	@Autowired(required = false)	@Resource(name="updateDecisionFile")	private Destination notifyQueue;	public void send(final Serializable ob) {		sendMessage(ob, notifyQueue);	}	/**	 * 使用jmsTemplate最简便的封装convertAndSend()发送Map类型的消息.	 */	private void sendMessage(Serializable msg, Destination destination) {		jmsTemplate.convertAndSend(destination, msg);	}}

订阅者代码:

package com.cloud.welkin.engine.mq.consumer;import javax.jms.Message;import javax.jms.MessageListener;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;@Component("updateDecisionFileMessageListener")public class UpdateDecisionFileMessageListener implements MessageListener {	private static Logger logger = LoggerFactory.getLogger(UpdateDecisionFileMessageListener.class);	@Override	public void onMessage(Message message) {				try {			//todo  在这里写逻辑		} catch (Exception e) {			logger.error("{}",e);		}			}}

总结:

spring JmsTemplate 整合消息队列,不管是发布订阅或者点对点,其实程序中的生产者、消费者(订阅者)代码并无太大区别,区别的是程序配置。

转载于:https://my.oschina.net/mingziyaoxiangliang/blog/1799857

你可能感兴趣的文章
单独编译Android源代码中的模块
查看>>
manjaro安装mysql5.7
查看>>
记录零散的知识点
查看>>
H5上传图片并使用canvas制作海报
查看>>
springmvc学习笔记
查看>>
LRU算法的设计
查看>>
Java util包中常用的类和方法
查看>>
[R] 之 管理工作空间函数
查看>>
将windows目录共享到linux
查看>>
计算机是如何启动的
查看>>
Python的raw_input语句包含中文,在Windows环境CMD中显示乱码的解决方法
查看>>
HIbernate学习笔记3 之 缓存和 对象的三种状态
查看>>
2015.3.12Arinc424 Tools中SiniArincCls.csParserFile(string sFile)函数正则表达式理解
查看>>
angularjs探秘<三> 控制器controller及angular项目结构
查看>>
列表的常用操作符和BIF
查看>>
opencv里面CV_32FC1家族
查看>>
在VS2015中用C++创建DLL并用C#调用且同时实现对DLL的调试
查看>>
JavaScript操作DOM的那些坑
查看>>
Acdream Path 动态规划
查看>>
手机版开发框架集合
查看>>