ActiveMQ简单封装
来源:互联网 发布:苹果双系统切换回mac 编辑:程序博客网 时间:2024/04/28 21:07
听说消息中间件挺重要的,今天简单看了下activeMQ,感觉挺有意思,简单封装了一下,做个笔记。
1、先要下载activeMQ,下载地址:http://activemq.apache.org/activemq-5143-release.html
2、下载下来之后,进行解压,进入到activeMQ\apache-activemq-5.14.3-bin\apache-activemq-5.14.3\bin根据自己电脑系统,启动不通的服务。我的64位,启动如图
3,启动之后,简单写一个java例子。
4、封装成工具类,不知道这样封装行不行,先记下来,以后再改,代码如下
package util;/** * @author pand * 主要对activeMQ简单的封装 */import java.io.Serializable;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.MessageConsumer;import javax.jms.MessageProducer;import javax.jms.ObjectMessage;import javax.jms.Session;import org.apache.activemq.ActiveMQConnectionFactory;public class ActiveMQutil { private static ActiveMQutil activeMQutil = null; static { activeMQutil = new ActiveMQutil(); } private ActiveMQutil(){} public static ActiveMQutil getActiveMQutil() { return activeMQutil; } private ConnectionFactory connectionFactory = null; private Connection connection = null; private Session session = null; private Destination destination = null; private MessageProducer messageProducer = null; private MessageConsumer messageConsumer = null; /** * 初始化链接工厂和链接 * @param userName * @param passWord * @param url */ public void setConnectionFactory(String userName, String passWord, String url){ connectionFactory = new ActiveMQConnectionFactory(userName, passWord, url); try { connection = connectionFactory.createConnection(); } catch (JMSException e) { e.printStackTrace(); } } /** * 消息中间件发送消息方法 * @param queueName 队列名称 * @param serializable 发送消息序列化内容 */ public void setProducerP2p(String queueName, Serializable serializable){ try { session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); destination = session.createQueue(queueName); messageProducer = session.createProducer(destination); sendMessage(session, messageProducer, serializable); session.commit(); } catch (JMSException e) { e.printStackTrace(); } finally{ closeConnection(connection); } } /** * 发送序列化的数据 * @param session session * @param producer 消息生产者 * @param serializable 发送消息序列化内容 */ public void sendMessage(Session session, MessageProducer producer, Serializable serializable){ try { ObjectMessage objectMessage = session.createObjectMessage(serializable); producer.send(objectMessage); } catch (JMSException e) { e.printStackTrace(); } } /** * 消息中间件接收消息方法 * @param queueName 队列名称 */ public void setCustomerP2p(String queueName){ try { connection.start(); session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); destination = session.createQueue(queueName); messageConsumer = session.createConsumer(destination); messageConsumer.setMessageListener(new ActiveMQListener()); } catch (JMSException e) { e.printStackTrace(); } } /** * 订阅模式发送消息方法封装 * @param queueName 订阅名称 * @param serializable 发送订阅序列化消息 */ public void setProducerTop(String queueName, Serializable serializable){ try { session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); destination = session.createTopic(queueName); messageProducer = session.createProducer(destination); sendMessage(session, messageProducer, serializable); session.commit(); } catch (JMSException e) { e.printStackTrace(); } finally{ closeConnection(connection); } } public void setCustomerTop(String queueName){ try { connection.start(); session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); destination = session.createTopic(queueName); messageConsumer = session.createConsumer(destination); messageConsumer.setMessageListener(new ActiveMQListener()); } catch (JMSException e) { e.printStackTrace(); } } /** * 关闭链接 * @param connection 链接 */ public void closeConnection(Connection connection){ if(connection != null){ try { connection.close(); } catch (JMSException e) { e.printStackTrace(); } } }}
5、监听类(简单写了一下)
package util;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.ObjectMessage;public class ActiveMQListener implements MessageListener{ @Override public void onMessage(Message message) { try { System.out.println(((ObjectMessage)message)); } catch (Exception e) { e.printStackTrace(); } }}
完整小例子下载:https://github.com/lesserPanda/ActiveMQ
0 0
- ActiveMQ简单封装
- activeMQ多线程并发 p2p 简单封装
- spring activemq集成封装
- activemq发送客户端(封装)
- ActiveMQ简单应用
- activemq 简单例子
- ActiveMQ的简单实现
- activeMQ jms 简单实现
- ActiveMQ的简单配置
- activeMQ的简单案例
- ActiveMQ简单入门实例
- ActiveMQ的简单用法
- ActiveMQ简单demo
- ActiveMQ简单使用介绍
- ActiveMQ简单实例
- ActiveMQ的简单使用
- ActiveMq的简单使用
- ActiveMQ的简单使用
- 奇异值分解(SVD)原理详解及推导
- 数据挖掘笔记一
- 取石子
- SDUACM16级寒假热身1
- go-workerpool 支持每分钟百万并发的抽象原型
- ActiveMQ简单封装
- Android App瘦身详解
- 解决web项目中发送文字乱码以及Tomcat 7控制台打印乱码问题
- OCP 053 31.Which two statements are correct about database transportation? (Choose two.)
- Mysql 分页语句Limit用法
- Excel数据分析与业务建模_第一章_名称(Range names)
- 【LeetCode】75. Sort Colors
- Codeforces_611D:New_Year_and_Ancient_Prophecy(DP+树状数组)
- javascript 两种方式实现动态雪碧图