有关ActiveMQ
来源:互联网 发布:淘宝怎么开通子账号 编辑:程序博客网 时间:2024/06/15 21:34
一、ActiveMQ结合Spring使用
pom文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.activemq</groupId> <artifactId>jmsTest</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>jmsTest</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <junit.version>4.12</junit.version> <spring.version>4.2.4.RELEASE</spring.version> <activemq-all>5.15.0</activemq-all> <xbean-spring>4.5</xbean-spring> <activemq-pool>5.15.0</activemq-pool> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>${activemq-all}</version> </dependency> <dependency> <groupId>org.apache.xbean</groupId> <artifactId>xbean-spring</artifactId> <version>${xbean-spring}</version> </dependency> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> <version>${activemq-pool}</version> </dependency> </dependencies></project>
Spring配置文件:applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd"><!--配置扫描的包--><context:component-scan base-package="com.activemq.spring"/><!--使用CGLib动态代理技术织入增强--><aop:aspectj-autoproxy proxy-target-class="true"/><!--配置连接工厂--><bean id="jmsFactory" class="org.apache.activemq.jms.pool.PooledConnectionFactory" destroy-method="stop"><property name="connectionFactory"><bean class="org.apache.activemq.ActiveMQConnectionFactory"><property name="brokerURL"><value>tcp://192.168.1.100:61616</value></property><property name="userName" value="admin"/><property name="password" value="admin"/></bean></property><property name="maxConnections" value="100"/></bean><!--配置destination--><bean id="destination" class="org.apache.activemq.command.ActiveMQQueue"><constructor-arg index="0" value="spring-queue"/></bean><!--配置jmsTemplate--><bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"><property name="connectionFactory" ref="jmsFactory"/><property name="defaultDestination" ref="destination"/><property name="messageConverter"><bean class="org.springframework.jms.support.converter.SimpleMessageConverter"/></property></bean></beans>发送端代码:com.activemq.spring.SpringQueueSender.java
package com.activemq.spring;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.jms.core.JmsTemplate;import org.springframework.jms.core.MessageCreator;import org.springframework.stereotype.Service;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.Session;import javax.jms.TextMessage;/** * @version 1.0 * @description: * @author: taozhiyaoyao * @date 2017/9/6 */@Servicepublic class SpringQueueSender { @Autowired private JmsTemplate jmsTemplate; public static void main(String[] args) throws Exception { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); SpringQueueSender sqs = (SpringQueueSender) applicationContext.getBean("springQueueSender"); sqs.jmsTemplate.send(new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { TextMessage textMessage = session.createTextMessage("Spring Message"); return textMessage; } }); }}
接收端代码:com.activemq.spring.SpringQueueReceiver.java
package com.activemq.spring;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.jms.core.JmsTemplate;import org.springframework.stereotype.Service;/** * @version 1.0 * @description: * @author: taozhiyaoyao * @date 2017/9/6 */@Servicepublic class SpringQueueReceiver { @Autowired private JmsTemplate jmsTemplate; public static void main(String[] args) throws Exception { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); SpringQueueReceiver sqr = (SpringQueueReceiver) applicationContext.getBean("springQueueReceiver"); String message = (String)sqr.jmsTemplate.receiveAndConvert(); System.out.print("The Message is " + message); }}
OK,这个Queue类型的发送实例,如果是Topic的话:需要修改一下Spring的配置文件,
<bean id="destinationTopic" class="org.apache.activemq.command.ActiveMQTopic"><constructor-arg index="0" value="spring-topic"/></bean><!--配置jmsTemplate--><bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"><property name="connectionFactory" ref="jmsFactory"/><!--<property name="defaultDestination" ref="destination"/>--><property name="defaultDestination" ref="destinationTopic"/><property name="messageConverter"><bean class="org.springframework.jms.support.converter.SimpleMessageConverter"/></property></bean>package com.activemq.spring;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.TextMessage;/** * @version 1.0 * @description: * @author: taozhiyaoyao * @date 2017/9/6 */public class MyMessageListener implements MessageListener { @Override public void onMessage(Message message) { TextMessage textMessage = (TextMessage) message; try { System.out.println("receive text message : " + textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } }}<!--配置消费者--><bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"><property name="connectionFactory" ref="jmsFactory"/><property name="destination" ref="destinationTopic"/><property name="messageListener" ref="messageListener"/></bean><bean id="messageListener" class="com.activemq.spring.MyMessageListener"/>MyMessageListener.java
package com.activemq.spring;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.TextMessage;/** * @version 1.0 * @description: * @author: taozhiyaoyao * @date 2017/9/6 */public class MyMessageListener implements MessageListener { @Override public void onMessage(Message message) { TextMessage textMessage = (TextMessage) message; try { System.out.println("receive text message : " + textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } }}
这样的话即使接收端不启动,也会收到消息。
阅读全文
0 0
- 有关ActiveMQ
- 有关ActiveMQ(二)
- 有关ActiveMQ文件上传初探
- 有关activeMQ的优秀博文收集
- ActiveMQ
- ACtiveMQ
- ACtiveMQ
- activeMQ
- ActiveMQ
- activeMQ
- activeMQ
- activemq
- ActiveMQ
- ActiveMQ
- ActiveMQ
- ActiveMQ
- activeMQ
- activemq
- 持续集成 之 Jenkins插件 Multiple SCMs Plugin
- JNI调用java方法, new java对象,new java内部类
- TortoiseSVN 由于目标计算机积极拒绝 无法连接
- nginx配置多个域名解析示例
- 只需5分钟,搞定企业组织架构图!
- 有关ActiveMQ
- 欢迎使用CSDN-markdown编辑器
- Pull和Push通信机制的研究
- FFmpeg安装
- 什么是 FreeMarker?
- 查看WINDOWINFO
- 对对机如何在电脑端打印照片(教程)
- Java最基础的文件上传功能
- Topcon.Magnet.Office.Tools.v4.2.Win64 1DVD