# ActivemqPlugin **Repository Path**: HingLo-C/ActivemqPlugin ## Basic Information - **Project Name**: ActivemqPlugin - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2018-12-21 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # **简介** ActivemqPlugin 是一个基于ActiveMq的消息中间件插件,用于与JFinal快速集成. [项目地址](http://jianshu.com): http://www.gitee.com/hinglo-c/ActivemqPlugin # **使用方式** **1.将项目git clone 到本地,并安装到本地仓库,一定要安装到本地仓库,因为没有上传到中央仓库** **2.pom 中引入** ``` cn.hinglo.activemq activemqplugin 1.0.0 ``` **3.在JFinal的JfinalConfig中 ``` public void configPlugin(Plugins plugins)``` 方法中添加插件,配置如下即可,其他参数请自行查看** ```java ActiveMqPlugin activeMqPlugin = new ActiveMqPlugin("tcp://127.0.0.1:61616"); plugins.add(activeMqPlugin); ``` **4.发送消息: 方式一: 使用apache 中activemq 库中消息对象,创建消息,例如:** ```java ActiveMQTextMessage message = new ActiveMQTextMessage(); message.setText("Hello world"); // 发送队列消息,参数为: 队列名称,消息对象,发送主题消息使用:sendTopicsMsg SendMsgKit.sendQueueMsg("queue-test", message); ``` 方式2: 使用session创建原生的Jms接口消息发送, ```java // 通过SessionKit工具获取session Session session = SessionKit.getJmsSession(); TextMessage message = session.createTextMessage("使用session创建的消息对象"); // 发送队列消息,参数为: 队列名称,消息对象,session,发送主题消息使用:sendTopicsMsg SendMsgKit.sendQueueMsg("queue-test", message,session); ``` **5:消息监听,消息监听需要实现 JMS中的```MessageListener```接口,并添加 ``` @MsgListener``` 注解标记即可,注解中有2个参数,一个是队列名称,一个队列类型(队列与主题),例如** ```java @MsgListener("queue-test") public class TestMessageListener implements MessageListener { @Override public void onMessage(Message message) { TextMessage textMessage = (TextMessage) message; try { System.out.println(textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } } ``` **注意**: ActiveMqPlugin中有一些其他属性设置,请自行查看,如果一个方法监听多个队列,想要区分消息是那个队列的,请参考: https://blog.csdn.net/whs_321/article/details/75349112 ````java // 核心代码 ActiveMQDestination queues=(ActiveMQDestination)message.getJMSDestination(); if(queues.getPhysicalName().equalsIgnoreCase("queue1")){ // 业务处理 .... }else if(queues.getPhysicalName().equalsIgnoreCase("queue1")){ // 业务处理 .... }... ```` ## 结束 **本人首次接触Activemq,使用到的东西比较简单,插件功能有限,实现基本的消息发送.代码中若有问题的还请各位多多指教,并提出.各位也可以根据自己需求进行修改**