JMS消息类型

本文介绍了JMS提供的6种消息接口,包括Message、TextMessage、StreamMessage、MapMessage、ObjectMessage和ByteMessage。每种消息由消息头、属性和体构成。文章通过代码示例展示了这些消息类型的创建过程。
摘要由CSDN通过智能技术生成

JMS总共提供了6个消息接口,分别为MessageTextMessageStreamMessageMapMessageObjectMessage以及ByteMessage,没中类型的消息都由3部分组成:消息头,消息属性和消息体。下面,我们就来探讨一下这几种消息的使用,首先看下消息的创建,代码如下:

@Service("messageProducerService")
public class MessageProducerService implements ProducerService {
	
	/**
	 * 注入JmsTemplate
	 */
	@Resource(name="jmsTemplate")
	private JmsTemplate jTemplate;

	@Override
	public void sendMessage(Destination destination, String message) {
		System.out.println("acknowledgeMode:"+jTemplate.getSessionAcknowledgeMode());
		
		/*
		 * 这种类型的消息仅仅包含JMS消息头和消息属性,而且,它仅限用于事件通知
		 * ,一个事件通知就是出现某些情况的一个广播,告警,或者通知,如果业务场景需要一个不含任何消息内容
		 *  的简单通知,轻量级消息类型就是实现它的最有效方式,例如,为了广播通知某个特定类中的一个异常,可以
		 *  发布一条不含有任何消息内容的异常文本消息
		 */
		jTemplate.send(destination, new MessageCreator() {
			
			@Override
			public Message createMessage(Session session) throws JMSException {
				Message m = session.createMessage();
				m.setStringProperty("exception", "java.lang.NosuchMethodException");
				return m;
			}
		});
		
		/*
		 * 这种类型的消息携带了一个字符串作为消息内容,可以用作简单的文本类型消息以及复杂的字符数据的交换例如:
		 * xml,json格式,发送这种类型的消息一般有两种方式,具体发送方式如下:
		 */
		jTemplate.send(destination, new MessageCreator() {

			/**
			 * 
			 * attention:直接使用session创建一个带具体消息内容的消息
			 * Details:example1
			 * @author chhliu
			 */
//			@Override
//			public Message createMessage(Session session) throws JMSExce
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值