`

spring+jms

 
阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jms="http://www.springframework.org/schema/jms" xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.0.xsd">

	<context:component-scan base-package="com.tiantian" />

	<!-- Spring提供的JMS工具类,它可以进行消息发送、接收等 -->
	<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
		<!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->
		<property name="connectionFactory" ref="connectionFactory" />
	</bean>
	<!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory -->
	<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
		<!-- 目标ConnectionFactory对应真实的可以产生JMS Connection的ConnectionFactory -->
		<property name="targetConnectionFactory" ref="targetConnectionFactory" />
	</bean>
	<!-- 真正可以产生Connection的ConnectionFactory,由对应的 JMS服务厂商提供-->
	<bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
		<property name="brokerURL" value="tcp://localhost:61616" />
	</bean>


	<!--这个是队列目的地-->
	<bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue">
		<constructor-arg>
			<value>queue</value>
		</constructor-arg>
	</bean>
	<!-- 消息监听器 -->
	<bean id="consumerMessageListener" class="com.tiantian.springintejms.listener.ConsumerMessageListener" />
	<!-- 消息监听容器 -->
	<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
		<property name="connectionFactory" ref="connectionFactory" />
		<property name="destination" ref="queueDestination" />
		<property name="messageListener" ref="consumerMessageListener" />
	</bean>
</beans>

 

package com.tiantian.springintejms.listener;
 
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
 
public class ConsumerMessageListener implements MessageListener {
 
    public void onMessage(Message message) {
        //这里我们知道生产者发送的就是一个纯文本消息,所以这里可以直接进行强制转换
        TextMessage textMsg = (TextMessage) message;
        System.out.println("接收到一个纯文本消息。");
        try {
            System.out.println("消息内容是:" + textMsg.getText());
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
 
}

 

package com.tiantian.springintejms.service.impl;

import javax.jms.Destination;

public interface ProducerService {
	 public void sendMessage(Destination destination, final String message);
}

 

package com.tiantian.springintejms.service.impl;
 
import javax.annotation.Resource;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;

import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Component;
 
@Component
public class ProducerServiceImpl implements ProducerService {
 
    private JmsTemplate jmsTemplate;
    
    public void sendMessage(Destination destination, final String message) {
        System.out.println("---------------生产者发送消息-----------------");
        System.out.println("---------------生产者发了一个消息:" + message);
        jmsTemplate.send(destination, new MessageCreator() {
            public Message createMessage(Session session) throws JMSException {
                return session.createTextMessage(message);
            }
        });
    } 

    public JmsTemplate getJmsTemplate() {
        return jmsTemplate;
    } 

    @Resource
    public void setJmsTemplate(JmsTemplate jmsTemplate) {
        this.jmsTemplate = jmsTemplate;
    }
 
}

 

package com.tiantian.springintejms.test;
 
import javax.jms.Destination;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.tiantian.springintejms.service.impl.ProducerService;
 
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class ProducerConsumerTest {
 
    @Autowired
    private ProducerService producerService;
    @Autowired
    @Qualifier("queueDestination")
    private Destination destination;
    
    @Test
    public void testSend() {
        for (int i=0; i<2; i++) {
            producerService.sendMessage(destination, "你好,生产者!这是消息:" + (i+1));
        }
    }
    
}

 

分享到:
评论

相关推荐

    基于Spring+JMS+ActiveMQ+Tomcat的整合ActiveMQSpringDemo实例源码.zip

    基于Spring+JMS+ActiveMQ+Tomcat的整合ActiveMQSpringDemo实例源码,此实例基于Spring+JMS+ActiveMQ+Tomcat,注解的完整实例,包含jar包,可供学习及设计参考。

    Spring+JMS+ActiveMQ+Tomcat jar下载

    在"Spring+JMS+ActiveMQ+Tomcat"的组合中,Spring作为核心框架负责应用的结构和依赖管理,而JMS提供消息传递机制。ActiveMQ作为JMS的实现,承担起消息队列的职责,确保消息的可靠传输。Tomcat则作为运行环境,承载着...

    Spring+JMS+ActiveMQ+Tomcat实现消息服务的demo

    基于Spring+JMS+ActiveMQ+Tomcat,我使用的版本情况如下所示:Spring 3.2.0,ActiveMQ 5.4.3,Tomcat 6.0.43。本例通过详细的说明和注释,实现消息服务的基本功能:发送与接收。Spring对JMS提供了很好的支持,可以...

    Spring+JMS+消息处理

    ### Spring+JMS+消息处理知识点详解 #### 一、Spring JMS框架概述 Spring JMS框架是Spring项目的一部分,其主要目标是简化Java Message Service (JMS) API的使用,使得开发人员能够更容易地与消息中间件进行交互。...

    spring+jms+activemq

    总结来说,"spring+jms+activemq"的组合为开发者提供了一种高效、可扩展的异步消息处理方案。Spring简化了JMS的集成和管理,ActiveMQ作为强大的消息中间件,保证了消息的稳定传输。通过理解和掌握这一技术栈,开发者...

    ActiveMQ+Camel+Spring+jms Demo(一)

    **ActiveMQ+Camel+Spring+jms Demo(一)** 在IT行业中,集成不同组件以构建高效、可扩展的消息传递系统是一项常见的任务。本示例将深入探讨如何使用ActiveMQ作为消息中间件,Apache Camel作为集成工具,以及Spring...

    基于Spring+JMS+ActiveMQ+Tomcat整合

    基于Spring+JMS+ActiveMQ+Tomcat,做一个Spring4.1.0和ActiveMQ5.11.1整合实例,实现了Point-To-Point的异步队列消息和PUB/SUB(发布/订阅)模型,简单实例,不包含任何业务。

    ext + spring + jms 开发 web桌面oa管理系统

    本项目标题“ext + spring + jms 开发 web桌面oa管理系统”揭示了开发过程中所采用的核心技术和架构。下面将详细介绍这些关键技术及其在系统中的应用。 首先,EXT是一个基于JavaScript的富客户端框架,主要负责UI层...

    ActiveMQ+Camel+Spring+jms Demo(二)

    在本项目"ActiveMQ+Camel+Spring+jms Demo(二)"中,我们将探讨一个集成ActiveMQ消息中间件、Apache Camel路由引擎、Spring框架以及Java消息服务(JMS)的示例应用。这个组合提供了强大的企业级消息处理能力,是...

    Spring+JMS+ActiveMQ+Tomcat实现消息服务_服务器应用

    ### Spring+JMS+ActiveMQ+Tomcat 实现消息服务 #### 一、技术栈介绍 在本案例中,我们采用的技术栈为Spring 2.5、ActiveMQ 5.4.0 和 Tomcat 6.0.30。这些技术的结合能够有效地构建一个可靠的消息传递系统。 - **...

    spring+jms+jta事务的消息发送和消息消费

    在压缩包文件"shanhy-springjms"中,可能包含了以下内容: 1. `pom.xml`:Maven项目的配置文件,定义了项目依赖,包括Spring、JMS和JTA相关的库。 2. `src/main/java`:源代码目录,可能有Spring配置类、消息生产者...

    Spring + JMS + MQ Connection

    Spring与JMS结合,可以方便地实现消息驱动的架构,而MQ作为JMS的实现,进一步加强了这种能力。本文将详细讲解如何在Spring中配置和使用JMS与MQ连接。 首先,要配置Spring与JMS的连接,我们需要在Spring的配置文件中...

    Spring+JMS+ActiveMQ+Tomcat DOME

    description="JMS Connection Factory" factory="org.apache.activemq.jndi.JNDIReferenceFactory" brokerURL="vm://shirdrnUrl" brokerName="MyActiveMQBroker"/&gt; auth="Container" type="org.apache...

    JMS之Spring +activeMQ实现消息队列

    总结起来,"JMS之Spring + ActiveMQ实现消息队列"涉及到的关键知识点包括:Spring框架的JMS支持、ActiveMQ的使用、ConnectionFactory的配置、JmsTemplate和MessageListener的实现,以及消息队列在解决系统解耦和异步...

    Spring+Weblogic JMS

    在本项目中,Spring与WebLogic JMS(Java消息服务)的集成展示了如何在Spring环境中使用消息队列进行通信。 WebLogic JMS是Oracle WebLogic Server提供的消息中间件,它遵循JMS规范,用于在分布式环境中传递消息,...

    spring+struts+hibernate+jdbc+oracle+jms+flex+flamingle+jquery+plsql

    JMS(Java Message Service)是Java平台的消息传递标准,用于异步通信。它可以提高系统的可扩展性和可靠性,例如在系统间传输非实时数据。 Flex是一种用于创建富互联网应用程序(RIA)的框架,基于ActionScript和MXML...

    xfire+spring+安全认证

    XFire的核心特性包括XML处理、协议绑定(如HTTP、JMS等)、服务发现以及支持各种数据绑定技术(如JAXB、Castor等)。它还提供了一种机制来处理Web服务的安全性,例如基于WS-Security的标准,可以实现用户身份验证和...

Global site tag (gtag.js) - Google Analytics