# jfinal-activemq **Repository Path**: lhmsunny/jfinal-activemq ## Basic Information - **Project Name**: jfinal-activemq - **Description**: jfinal的activemq插件,使用极为简便 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/lhmsunny - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-27 - **Last Updated**: 2023-02-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jfinal-activemq #### 介绍 jfinal的activemq插件,使用极为简便,代码易于理解和二次开发 # **使用方式** **1.将项目git clone 到本地,并安装到本地仓库,一定要安装到本地仓库,因为没有上传到中央仓库** **2.pom 中引入** ``` com.jfinal.plugin jfinal-activemq 1.0.0 ``` **3.在JFinal的JfinalConfig中 ``` public void configPlugin(Plugins plugins)``` 方法中添加插件,配置如下即可,其他参数请自行查看** ```java ActiveMqPlugin activeMqPlugin = new ActiveMqPlugin(PropKit.get("MQURL"),PropKit.get("MQUSER"),PropKit.get("MQPASSWORD")); //activeMqPlugin.setScan(true); //默认false //activeMqPlugin.setScanPackage("com.lhm.center.mq"); me.add(activeMqPlugin); //手动增加监听 //activeMqPlugin.addListener("ecard_ye", MessageType.QUEUE, ECardYEListener.class); ``` ```prop MQURL=tcp://IP:61616 MQUSER=** MQPASSWORD=** ``` **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")){ // 业务处理 .... }... ```` #### 参与贡献 1. 参考 http://www.gitee.com/hinglo-c/ActivemqPlugin 并修复了BUG和兼容jar模式