ActiveMQ使用spring JmsTemplate发送消息(一)
生活随笔
收集整理的這篇文章主要介紹了
ActiveMQ使用spring JmsTemplate发送消息(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
下載地址:http://activemq.apache.org/download-archives.html
解壓 啟動bin\activemq.bat
生產者接口:
public interface ProducerService {/** * 向指定隊列發送消息 */ void sendMessage(Destination destination, final String msg); /** * 向默認隊列發送消息 */ void sendMessage(final String msg); } 消費者接口:
public interface ConsumerService {/** * 接受消息 */ void receive(Destination destination); } 生產者實現:
@Service("producerService") public class ProducerServiceImpl implements ProducerService {@Resource private JmsTemplate jmsTemplate; /** * 向指定隊列發送消息 */ public void sendMessage(Destination destination, final String msg) {System.out.println("向隊列" + destination.toString() + "發送了消息------------" + msg); jmsTemplate.send(destination, new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createTextMessage(msg); }}); }/** * 向默認隊列發送消息 */ public void sendMessage(final String msg) {String destination = jmsTemplate.getDefaultDestination().toString(); System.out.println("向隊列" +destination+ "發送了消息------------" + msg); jmsTemplate.send(new MessageCreator() {public Message createMessage(Session session) throws JMSException {return session.createTextMessage(msg); }}); } } 消費者實現:
@Service("consumerService") public class ConsumerServiceImpl implements ConsumerService {@Resource private JmsTemplate jmsTemplate; /** * 接受消息 */ public void receive(Destination destination) {TextMessage tm = (TextMessage) jmsTemplate.receive(destination); try {System.out.println("從隊列" + destination.toString() + "收到了消息:\t" + tm.getText()); } catch (JMSException e) {e.printStackTrace(); }} } maven:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> <dependency> <groupId>com.hankcs</groupId> <artifactId>hanlp</artifactId> <version>portable-1.3.2</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.11.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>4.1.4.RELEASE</version> </dependency> </dependencies> spring:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" 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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"> <!-- spring 注解支持 --> <context:annotation-config /> <context:component-scan base-package="com.activemq.service" /> <!-- 配置JMS連接工廠 --> <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="failover:(tcp://localhost:61616)" /> </bean> <!-- 定義消息隊列(Queue) --> <bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue"> <!-- 設置消息隊列的名字 --> <constructor-arg> <value>queue1</value> </constructor-arg> </bean> <!-- 配置JMS模板(Queue),Spring提供的JMS工具類,它發送、接收消息。 --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="connectionFactory" /> <property name="defaultDestination" ref="queueDestination" /> <property name="receiveTimeout" value="10000" /> </bean> </beans> 測試:
@Test public void producerTest(){// 加載spring ClassPathXmlApplicationContext springContext = SpringContainer.getSpringContext(); ProducerService producerService = (ProducerService)springContext.getBean("producerService"); ConsumerService consumerService = (ConsumerService)springContext.getBean("consumerService"); Destination destination = (Destination)springContext.getBean("queueDestination"); producerService.sendMessage("測試消息隊列"); consumerService.receive(destination); } public class SpringContainer {public static final String DEFAULT_SPRING_CONFIG = "classpath:META-INF/spring/*.xml"; public static ClassPathXmlApplicationContext getSpringContext() {return MySpringContainer.context; }private static class MySpringContainer{private static ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(DEFAULT_SPRING_CONFIG.split("[,\\s]+")); } }
總結
以上是生活随笔為你收集整理的ActiveMQ使用spring JmsTemplate发送消息(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JEECG社区公司,招聘全职JAVA工程
- 下一篇: hdu 5185(dp)