JMS学习笔记(二)——运用JMS发送和承受text、Map、Object类型的音讯ITeye - 亚美娱乐

JMS学习笔记(二)——运用JMS发送和承受text、Map、Object类型的音讯ITeye

2019年02月23日13时12分12秒 | 作者: 迎丝 | 标签: 音讯,类型,笔记 | 浏览: 1735

前一篇笔记记载了ActiveMQ的装置简介,这篇笔记首要记载怎么运用JMS发送常见的三种音讯,即text、Map、和Object类型的数据。JMS有两种方法进行音讯通讯:Point-to-Point (P2P) 和 Publish/Subscriber (PUB/SUB),即Queue音讯和Topic类型的音讯,在这个比如中我运用Point to Point的行列方式发送音讯,关于两种音讯类型的差异,在后边的笔记中我将依据我的了解进行记载。

1、product发送JMS音讯

 

public class QueueSend {
 public static void main(String[] args) throws JMSException {
 ConnectionFactory connectionfactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
 //创立与JMS效劳的衔接:ConnectionFactory被办理的目标,由客户端创立,用来创立一个衔接目标
 Connection connection = connectionfactory.createConnection();//获取衔接,connection一个到JMS体系提供者的活动衔接
 Session session =connection.createSession(false,Session.AUTO_ACKNOWLEDGE );//翻开会话,一个独自的发送和承受音讯的线程上下文
 QueueSend qs = new QueueSend();
 qs.sendTextMsg(session,"运用jms发送文本音讯","queue.msgText");//发送文本类型的音讯
 MapMessage mapMsg = session.createMapMessage();
 mapMsg.setString("name", "李寻欢1");
 mapMsg.setBoolean("IsHero", true);
 mapMsg.setInt("age", 35);
 qs.sendMap(session, mapMsg, "queue.msgMap");//发送map类型的音讯
 Person person = new Person("阿飞", 23, "北京.大兴");//发送Object类型音讯
 qs.sendObj(session, person, "queue.msgObj");
 session.close();
 connection.close();
 * 发送文本音讯
 public void sendTextMsg(Session session,String MsgContent,String name) throws JMSException{
 Queue queue = new ActiveMQQueue(name);
 MessageProducer msgProducer = session.createProducer(queue);
 Message msg = session.createTextMessage(MsgContent);
 msgProducer.send(msg);
 System.out.println("文本音讯已发送");
 * 发送MAP类型音讯
 public void sendMap(Session session,MapMessage map,String name) throws JMSException{
 Queue queue = new ActiveMQQueue(name);
 MessageProducer msgProducer = session.createProducer(queue);
 msgProducer.send(map);
 System.out.println("Map格局的音讯已发送");
 * 发送Object类型音讯
 public void sendObj(Session session,Object obj,String name) throws JMSException{
 Destination queue = new ActiveMQQueue(name);//分装音讯的意图标明
 MessageProducer msgProducer = session.createProducer(queue);
 ObjectMessage objMsg=session.createObjectMessage((Serializable) obj);//发送目标时有必要让该目标完成serializable接口
 MessageProducer msgPorducer =session.createProducer(queue);
 msgPorducer.send(objMsg);
 System.out.println("Object类型的音讯已发送");
 当音讯发送成功时咱们能够再web音讯办理端看到发生了如下图所示的三条音讯。


    在上边的代码中,咱们在发送Object目标时,咱们发送的目标需求完成serializable接口。记住刚找工作的时分有一回有个面试官问到,为什么一个类要完成serializable接口,或许许多人新人都不知道为什么,只能依照背的面试题中的答案去说。刚好这个demo中遇到了这个问题,就持续温习一下java的根底吧。一个类只要完成了serializable才是能够序列化的,浅显的讲完成了serializable接口后咱们将能够把这个类,在网络上进行发送,或许将这个类存入到硬盘,序列化的意图就是保存一个目标。

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表亚美娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章