JMS整合Spirng实现异步发送消息,简单实例:
1、下载ActiveMQ:http://activemq.apache.org/download.html
2、新建java project,添加spring功能,由于我不太信任Myeclipse添加的spring的jar包,所以我自己添加了spring的jar包,只用它给我生成的那个applicationContext.xml文件,另外加上:activemq-all-5.3.1.jar、log4j-1.2.15.jar、slf4j-api-1.5.8.jar、slf4j-log4j12-1.5.6.jar
3、下面贴上所有代码:
--------MessageProducer :
package com.starit.jmsspring;
import org.springframework.jms.core.JmsTemplate;
/**
* MessageProducer
* @author lisanlai
*
*/
public class MessageProducer {
private JmsTemplate jmsTemplate;
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
/**
* 发送消息
* @param msg
*/
public void sendMsg(Object msg){
this.jmsTemplate.convertAndSend(msg);
}
}
------------MessageListener:
package com.starit.jmsspring;
/**
* MessageListener
* @author lisanlai
*
*/
public class MessageListener {
/**
* 接收消息
* @param msg
*/
public void getMessage(Object msg){
if(msg instanceof String){
System.out.println("监听到消息:"+msg);
}
}
}
----------applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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-2.5.xsd">
<!-- 属性文件的配置 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>jms_spring.properties</value>
</list>
</property>
</bean>
<!-- beans配置开始 -->
<!-- JMS ConnectionFactory -->
<bean id="connectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${jms.brokerURL}" />
</bean>
<!-- JMS Queue Template -->
<bean id="jmsTemplate"
class="org.springframework.jms.core.JmsTemplate102">
<property name="connectionFactory" ref="connectionFactory" />
<property name="timeToLive" value="${jms.timeToLive}" />
<property name="defaultDestinationName"
value="${jms.destinationName}" />
<property name="receiveTimeout" value="${jms.receiveTimeout}" />
</bean>
<!-- Message porducer 消息生产者-->
<bean id="msgProducer" class="com.starit.jmsspring.MessageProducer">
<property name="jmsTemplate" ref="jmsTemplate" />
</bean>
<!-- 消息监听器 -->
<bean id="messageListener"
class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
<constructor-arg>
<bean
class="com.starit.jmsspring.MessageListener" />
</constructor-arg>
<property name="defaultListenerMethod" value="getMessage" />
</bean>
<bean id="listenerContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destinationName"
value="${jms.destinationName}" />
<property name="messageListener" ref="messageListener" />
</bean>
</beans>
-----------jms_spring.properties:
jms.brokerURL=tcp://localhost:61616
jms.receiveTimeout=3000
jms.destinationName=starit.queue
jms.timeToLive=86400000
------------测试类Test:
package com.starit.jmsspring;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* 测试类
* @author lisanlai
*
*/
public class Test {
public static void main(String[] args) {
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext(new String[] { "applicationContext.xml" });
MessageProducer msgProducer = (MessageProducer) ctx.getBean("msgProducer");
msgProducer.sendMsg("Hello JMS and Spring!这是一个JMS整合Spring的DEMO");
for(int i=1;i<=10;i++){
msgProducer.sendMsg("#这是第"+i+"条消息……");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
msgProducer.sendMsg("消息成功 发送完成!");
}
}
分享到:
相关推荐
**JMS整合Spring实例** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的一种标准接口。它允许应用程序创建、发送、接收和读取消息,以此来解耦生产者和消费者。而Spring框架...
本项目"jms整合spring工程"是一个已经准备就绪的Java工程,它展示了如何在Spring框架中集成JMS,以便利用消息队列进行通信。主要依赖的是Apache ActiveMQ,这是一款流行的开源JMS提供者,能够实现高效、可靠的实时...
本项目"jms整合spring"是一个基于Maven构建的实际开发案例,旨在展示如何在Spring环境中配置和使用JMS。Maven是一个强大的项目管理和依赖管理工具,它通过定义项目的POM(Project Object Model)文件,自动解决项目...
详细内容: SpringJMS整合ActiveMQ.doc 详细说明文档 apache-activemq-5.8.0-bin.zip ActiveMQ安装包 JMSTest.rar MyEclipse8.5下web工程
本实例中,"JMS实例,整合spring,含jar"表明这是一个具体的项目示例,展示了如何在Spring框架中配置和使用JMS。这通常涉及到以下步骤: 1. **添加依赖**:首先,你需要在项目的构建文件(如Maven的pom.xml或Gradle的...
【WebLogic 与 JMS+Spring 整合详解】 WebLogic 是由 BEA Systems(现已被 Oracle 收购)开发的一款 Java 应用服务器,它主要用于构建、部署和管理大型分布式Web应用、网络应用和数据库应用。WebLogic 提供了对多种...
JMS与SPRING的整合实例(基于Apache ActiveMQ) 定义JMS连接工厂 定义JMS Template 定义消息目的地 定义接收监听器 定义一个JMS话题 定义消费者(接收端) 定义发布者 JAVA核心代码一般由三个部分组成: 监听器...
本人开发的spring jms项目,已经上线近一年了,这里是我项目jms配置文件,使用的是spring jms 整合weblogic jms。如果真的需要,请咨询我,并且附上我上传的这个配置文件,附近中没有带有这个文件,一律不作任何回答...
本文将深入探讨如何在Spring 3.0中整合JMS与ActivemQ,以及它们在实际应用中的关键知识点。 首先,我们要了解Spring对JMS的支持。Spring通过其`org.springframework.jms`包提供了丰富的JMS抽象,简化了JMS的使用。...
- Spring支持与JMS的事务整合,可以确保消息的可靠传递,即使在系统故障时也能保证数据一致性。 7. **异常处理**: - 消息监听器可以抛出异常来拒绝消息,Spring提供了一套完整的异常处理机制。 8. **消息选择器...
本文将深入探讨如何在Spring中整合JMS并实现事务管理,以确保消息传递的可靠性和一致性。 首先,我们需要理解Spring的声明式事务管理。Spring提供了一种强大的声明式事务管理机制,它允许我们在不编写任何事务控制...
总的来说,通过Spring与ActiveMQ的整合,我们可以构建出可靠、高效的消息队列系统,从而改善系统的响应时间,提高可扩展性和容错性。同时,Spring提供的抽象层简化了开发过程,使得开发者可以专注于业务逻辑,而不是...
整合Spring和JMS提供了开发者利用Java消息服务的强大功能的同时,降低了开发难度,使应用程序之间能够以松耦合的方式进行高效的消息传递和异步通信。通过上述知识点的详细解析,可以清晰地了解Spring框架如何集成JMS...
在整合Spring JMS与ActiveMQ的过程中,关键在于正确配置ConnectionFactory和相关组件。例如,使用`SingleConnectionFactory`时,需要确保其配置正确,包括设置JMS服务器的URL、用户名和密码等。此外,通过Spring的...
ActiveMQ整合Spring的Demo是一个典型的Java企业级应用示例,它展示了如何在Spring框架中集成Apache ActiveMQ,以便实现消息队列的功能。ActiveMQ是Apache软件基金会的一个开源项目,它是一个功能丰富的Java消息服务...
在Java世界中,ActiveMQ和Spring的整合是企业级应用中常见的消息中间件解决方案,用于实现JMS(Java Message Service)消息传递。本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的...
在整合Spring与JMS时,我们首先需要配置`ConnectionFactory`,它是创建与JMS服务器连接的工厂。对于ActiveMQ,我们可以创建一个`ActiveMQConnectionFactory`实例,并设置服务器地址、端口等参数。例如: ```xml ...
在整合Spring和ActiveMQ时,你需要了解以下几个关键知识点: 1. **ActiveMQ**: ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循Java Message Service (JMS) 规范,提供可靠的消息传递服务,支持多种...
Spring Integration + Spring WS 整合 在 Java 领域中,Spring Integration 和 Spring WS 是两个常用的框架,它们分别负责集成系统和 Web 服务。今天,我们将探讨如何将这两个框架整合在一起,实现一个完整的 Web ...