- 浏览: 41474 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (76)
- Dojo 组件 (1)
- 数据库 (7)
- Maven (3)
- 负载均衡 (4)
- Java (12)
- 多线程 (4)
- Spring (3)
- Java缓存 (3)
- 高并发 (3)
- 热部署 (2)
- 大数据 (3)
- 分布式 (1)
- Linux (4)
- 云计算 (1)
- Eclipse (2)
- Tomcat (2)
- Shell (1)
- Python (1)
- 测试 (3)
- 算法与数据结构 (1)
- 设计模式 (1)
- JQuery (1)
- Nginx (1)
- 开发工具 (7)
- JMS (2)
- CI 持续集成 (2)
- Java UI (0)
- UI (1)
- Jenkins (1)
- Ibatis (1)
- Hadoop (1)
- Zookeeper (1)
- Redis (1)
JMS可以建立发送和接受消息的程序.消息是在java程序或组件之间传递的信息,可以是文本,也可以是其他类型如某个类的对象。涉及到多个系统协作或者处理开销较高的,且不希望耦合度太紧密的,就会考虑用JMS来作为接口。
在下列情况下应该考虑使用JMS而不是其他的消息处理机制:
1.消息的发送者和接受者不需要依赖对方的接口
2.消息的发送者和接受者不需要对方同时在运行
3.消息的发送者不需要接收者立刻应答
JMS消息传送分为point to point(点对点)和publish/subscribe(出版/预定)两种
JMS用来做什么:
用JMS来异步发送邮件,还可以用JMS来解决很多复杂的问题,例如 分布,并发,系统解耦,负载均衡,热部署,触发器等等,这些复杂问题因为引入JMS而变的更加简单.下面简单介绍下解决分布,并发问题的场景.
1.pom.xml
<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>org.springframework.samples</groupId>
<artifactId>spring-jms-activemq-send</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<!-- Spring version -->
<spring-framework.version>4.1.0.RELEASE</spring-framework.version>
<!-- ActiveMQ version -->
<activemq.version>5.10.0</activemq.version>
</properties>
<dependencies>
<!-- Spring aritifacts -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<!-- ActiveMQ Artifacts -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>${activemq.version}</version>
</dependency>
</dependencies>
<!-- Using JDK 1.7 for compiling -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
2. Message Sender和消费者Listener
package com.deppon.test04.jms;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Service;
@Service
public class JmsMessageSender {
@Autowired
private JmsTemplate jmsTemplate;
/**
* send text to default destination
* @param text
*/
public void send(final String text) {
this.jmsTemplate.send(new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
Message message = session.createTextMessage(text);
//set ReplyTo header of Message, pretty much like the concept of email.
message.setJMSReplyTo(new ActiveMQQueue("Recv2Send"));
return message;
}
});
}
/**
* Simplify the send by using convertAndSend
* @param text
*/
public void sendText(final String text) {
this.jmsTemplate.convertAndSend(text);
}
/**
* Send text message to a specified destination
* @param text
*/
public void send(final Destination dest,final String text) {
this.jmsTemplate.send(dest,new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
Message message = session.createTextMessage(text);
return message;
}
});
}
}
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();
}
}
}
3. Message Main函数:
package com.deppon.test04.jms;
import javax.jms.Queue;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DemoMain {
public static void main(String[] args) {
// init spring context
ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
// BeanFactory ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
// get bean from context
JmsMessageSender jmsMessageSender = (JmsMessageSender)ctx.getBean("jmsMessageSender");
// send to default destination
jmsMessageSender.send("hello JMS");
// send to a code specified destination
Queue queue = new ActiveMQQueue("AnotherDest");
jmsMessageSender.send(queue, "hello Another Message");
// close spring application context
((ClassPathXmlApplicationContext)ctx).close();
}
}
4.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" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.deppon.test04.jms" />
<!-- JMS -->
<bean id="jmsMessageSender" class="com.deppon.test04.jms.JmsMessageSender"> </bean>
<!-- =============================================== -->
<!-- JMS Common, Define JMS connectionFactory -->
<!-- =============================================== -->
<!-- Activemq connection factory -->
<bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<!-- brokerURL, You may have different IP or port -->
<constructor-arg index="0" value="tcp://10.182.105.30:61616" />
<!-- <constructor-arg index="0" value="tcp://localhost:8161" />-->
</bean>
<!-- Pooled Spring connection factory -->
<bean id="connectionFactory"
class="org.springframework.jms.connection.CachingConnectionFactory">
<constructor-arg ref="amqConnectionFactory" />
</bean>
<!-- ======================================================= -->
<!-- JMS Send, define default destination and JmsTemplate -->
<!-- ======================================================= -->
<!-- Default Destination Queue Definition -->
<bean id="defaultDestination" class="org.apache.activemq.command.ActiveMQQueue">
<!-- name of the queue -->
<constructor-arg index="0" value="Send2Recv" />
</bean>
<!-- JmsTemplate Definition -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="defaultDestination" ref="defaultDestination" />
</bean>
<!-- 消息监听器 -->
<bean id="consumerMessageListener" class="com.deppon.test04.jms.ConsumerMessageListener"/>
<!-- 消息监听容器 -->
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="defaultDestination" />
<property name="messageListener" ref="consumerMessageListener" />
</bean>
</beans>
5.下载ActiveMQ,并点击..\apache-activemq-5.9.0\bin\win64\activemq.bat启动MQ
http://activemq.apache.org/activemq-590-release.html
6.可以通过http://localhost:8161/index.html下的“Manage ActiveMQ broker”查看当前的Broker信息,例如地址、端口号等
http://localhost:8161/hawtio/#/jmx/attributes?tab=activemq&nid=root-org.apache.activemq-Broker-localhost
7.可以在eclispe下运行main函数,也可以在命令行下运行命令:
--------------------------------------------------------
cd 当前项目,例如c:\workspace\SpringWeb
mvn exec:java -Dexec.mainClass="com.deppon.test04.jms.DemoMain"
8.可以登入admin页面,访问“Queue Views”,用户名密码默认为admin,可以看到
<queues>
<queue name="Send2Recv">
<stats size="4" consumerCount="0" enqueueCount="4" dequeueCount="0"/>
<feed>
<atom>queueBrowse/Send2Recv?view=rss&feedType=atom_1.0</atom>
<rss>queueBrowse/Send2Recv?view=rss&feedType=rss_2.0</rss>
</feed>
</queue>
<queue name="AnotherDest">
<stats size="4" consumerCount="0" enqueueCount="4" dequeueCount="0"/>
<feed>
<atom>queueBrowse/AnotherDest?view=rss&feedType=atom_1.0</atom>
<rss>queueBrowse/AnotherDest?view=rss&feedType=rss_2.0</rss>
</feed>
</queue>
</queues>
控制台输出结果:
接收到一个纯文本消息。
消息内容是:hello JMS
接收到一个纯文本消息。
消息内容是:hello JMS
接收到一个纯文本消息。
消息内容是:hello JMS
接收到一个纯文本消息。
消息内容是:hello JMS
接收到一个纯文本消息。
消息内容是:hello JMS
9.junit测试类:
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;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class ProducerConsumerTest {
@Autowired
private JmsMessageSender producerService;
@Autowired
@Qualifier("defaultDestination")
private Destination destination;
@Test
public void testSend() {
for (int i=0; i<2; i++) {
producerService.send(destination, "你好,生产者!这是消息:" + (i+1));
}
}
}
参考:
http://shengwangi.blogspot.jp/2014/10/spring-jms-with-activemq-helloworld-example-send.html
http://haohaoxuexi.iteye.com/blog/1893038
https://spring.io/guides/gs/messaging-jms/
http://activemq.apache.org/jms.html
http://www.cnblogs.com/huang0925/p/3558690.html
http://www.javacodegeeks.com/2015/04/configure-a-spring-jms-application-with-spring-boot-and-annotation-support.html
http://itindex.net/detail/49721-jms-jms-%E5%BA%94%E7%94%A8 JMS的应用
在下列情况下应该考虑使用JMS而不是其他的消息处理机制:
1.消息的发送者和接受者不需要依赖对方的接口
2.消息的发送者和接受者不需要对方同时在运行
3.消息的发送者不需要接收者立刻应答
JMS消息传送分为point to point(点对点)和publish/subscribe(出版/预定)两种
JMS用来做什么:
用JMS来异步发送邮件,还可以用JMS来解决很多复杂的问题,例如 分布,并发,系统解耦,负载均衡,热部署,触发器等等,这些复杂问题因为引入JMS而变的更加简单.下面简单介绍下解决分布,并发问题的场景.
1.pom.xml
<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>org.springframework.samples</groupId>
<artifactId>spring-jms-activemq-send</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<!-- Spring version -->
<spring-framework.version>4.1.0.RELEASE</spring-framework.version>
<!-- ActiveMQ version -->
<activemq.version>5.10.0</activemq.version>
</properties>
<dependencies>
<!-- Spring aritifacts -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring-framework.version}</version>
</dependency>
<!-- ActiveMQ Artifacts -->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-spring</artifactId>
<version>${activemq.version}</version>
</dependency>
</dependencies>
<!-- Using JDK 1.7 for compiling -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
2. Message Sender和消费者Listener
package com.deppon.test04.jms;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Service;
@Service
public class JmsMessageSender {
@Autowired
private JmsTemplate jmsTemplate;
/**
* send text to default destination
* @param text
*/
public void send(final String text) {
this.jmsTemplate.send(new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
Message message = session.createTextMessage(text);
//set ReplyTo header of Message, pretty much like the concept of email.
message.setJMSReplyTo(new ActiveMQQueue("Recv2Send"));
return message;
}
});
}
/**
* Simplify the send by using convertAndSend
* @param text
*/
public void sendText(final String text) {
this.jmsTemplate.convertAndSend(text);
}
/**
* Send text message to a specified destination
* @param text
*/
public void send(final Destination dest,final String text) {
this.jmsTemplate.send(dest,new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
Message message = session.createTextMessage(text);
return message;
}
});
}
}
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();
}
}
}
3. Message Main函数:
package com.deppon.test04.jms;
import javax.jms.Queue;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class DemoMain {
public static void main(String[] args) {
// init spring context
ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
// BeanFactory ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
// get bean from context
JmsMessageSender jmsMessageSender = (JmsMessageSender)ctx.getBean("jmsMessageSender");
// send to default destination
jmsMessageSender.send("hello JMS");
// send to a code specified destination
Queue queue = new ActiveMQQueue("AnotherDest");
jmsMessageSender.send(queue, "hello Another Message");
// close spring application context
((ClassPathXmlApplicationContext)ctx).close();
}
}
4.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" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.deppon.test04.jms" />
<!-- JMS -->
<bean id="jmsMessageSender" class="com.deppon.test04.jms.JmsMessageSender"> </bean>
<!-- =============================================== -->
<!-- JMS Common, Define JMS connectionFactory -->
<!-- =============================================== -->
<!-- Activemq connection factory -->
<bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<!-- brokerURL, You may have different IP or port -->
<constructor-arg index="0" value="tcp://10.182.105.30:61616" />
<!-- <constructor-arg index="0" value="tcp://localhost:8161" />-->
</bean>
<!-- Pooled Spring connection factory -->
<bean id="connectionFactory"
class="org.springframework.jms.connection.CachingConnectionFactory">
<constructor-arg ref="amqConnectionFactory" />
</bean>
<!-- ======================================================= -->
<!-- JMS Send, define default destination and JmsTemplate -->
<!-- ======================================================= -->
<!-- Default Destination Queue Definition -->
<bean id="defaultDestination" class="org.apache.activemq.command.ActiveMQQueue">
<!-- name of the queue -->
<constructor-arg index="0" value="Send2Recv" />
</bean>
<!-- JmsTemplate Definition -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="defaultDestination" ref="defaultDestination" />
</bean>
<!-- 消息监听器 -->
<bean id="consumerMessageListener" class="com.deppon.test04.jms.ConsumerMessageListener"/>
<!-- 消息监听容器 -->
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destination" ref="defaultDestination" />
<property name="messageListener" ref="consumerMessageListener" />
</bean>
</beans>
5.下载ActiveMQ,并点击..\apache-activemq-5.9.0\bin\win64\activemq.bat启动MQ
http://activemq.apache.org/activemq-590-release.html
6.可以通过http://localhost:8161/index.html下的“Manage ActiveMQ broker”查看当前的Broker信息,例如地址、端口号等
http://localhost:8161/hawtio/#/jmx/attributes?tab=activemq&nid=root-org.apache.activemq-Broker-localhost
7.可以在eclispe下运行main函数,也可以在命令行下运行命令:
--------------------------------------------------------
cd 当前项目,例如c:\workspace\SpringWeb
mvn exec:java -Dexec.mainClass="com.deppon.test04.jms.DemoMain"
8.可以登入admin页面,访问“Queue Views”,用户名密码默认为admin,可以看到
<queues>
<queue name="Send2Recv">
<stats size="4" consumerCount="0" enqueueCount="4" dequeueCount="0"/>
<feed>
<atom>queueBrowse/Send2Recv?view=rss&feedType=atom_1.0</atom>
<rss>queueBrowse/Send2Recv?view=rss&feedType=rss_2.0</rss>
</feed>
</queue>
<queue name="AnotherDest">
<stats size="4" consumerCount="0" enqueueCount="4" dequeueCount="0"/>
<feed>
<atom>queueBrowse/AnotherDest?view=rss&feedType=atom_1.0</atom>
<rss>queueBrowse/AnotherDest?view=rss&feedType=rss_2.0</rss>
</feed>
</queue>
</queues>
控制台输出结果:
接收到一个纯文本消息。
消息内容是:hello JMS
接收到一个纯文本消息。
消息内容是:hello JMS
接收到一个纯文本消息。
消息内容是:hello JMS
接收到一个纯文本消息。
消息内容是:hello JMS
接收到一个纯文本消息。
消息内容是:hello JMS
9.junit测试类:
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;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class ProducerConsumerTest {
@Autowired
private JmsMessageSender producerService;
@Autowired
@Qualifier("defaultDestination")
private Destination destination;
@Test
public void testSend() {
for (int i=0; i<2; i++) {
producerService.send(destination, "你好,生产者!这是消息:" + (i+1));
}
}
}
参考:
http://shengwangi.blogspot.jp/2014/10/spring-jms-with-activemq-helloworld-example-send.html
http://haohaoxuexi.iteye.com/blog/1893038
https://spring.io/guides/gs/messaging-jms/
http://activemq.apache.org/jms.html
http://www.cnblogs.com/huang0925/p/3558690.html
http://www.javacodegeeks.com/2015/04/configure-a-spring-jms-application-with-spring-boot-and-annotation-support.html
http://itindex.net/detail/49721-jms-jms-%E5%BA%94%E7%94%A8 JMS的应用
相关推荐
详细内容: SpringJMS整合ActiveMQ.doc 详细说明文档 apache-activemq-5.8.0-bin.zip ActiveMQ安装包 JMSTest.rar MyEclipse8.5下web工程
本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目服务器间异步访问。 一. 简介 1. 什么是Apache ActiveMq Apache ActiveMq是最流行和最强大的开源消息和集成服务器。同时Apache ActiveMq...
综上所述,Spring整合JMS和ActivemQ提供了一套完整的解决方案,帮助开发者轻松地在应用中实现消息的发送和接收。通过这种方式,可以构建出高可用、松耦合、可扩展的分布式系统,提高系统的稳定性和响应速度。在实际...
集成SpringJMS和ActiveMQ首先需要在Spring配置中定义ConnectionFactory和Destination(Topic或Queue)。ConnectionFactory是JMS客户端用来创建与消息服务器的连接的工厂,而Destination是消息的目的地。Spring的`...
基于Spring+JMS+ActiveMQ+Tomcat,我使用的版本情况如下所示:Spring 3.2.0,ActiveMQ 5.4.3,Tomcat 6.0.43。本例通过详细的说明和注释,实现消息服务的基本功能:发送与接收。Spring对JMS提供了很好的支持,可以...
3. `pom.xml`或`build.gradle`文件,描述了项目的构建依赖,包括Spring、ActiveMQ和其他必需库。 4. 测试脚本或测试类,用于验证消息的发送和接收。 为了运行这个实例,你需要安装并配置Tomcat服务器,然后按照说明...
在IT行业中,Spring框架...Spring简化了JMS的集成和管理,ActiveMQ作为强大的消息中间件,保证了消息的稳定传输。通过理解和掌握这一技术栈,开发者可以构建出高可用、松耦合的应用系统,提高系统的整体性能和稳定性。
总结起来,"jms Spring+ActiveMQ 5.4.2"是一个关于如何利用Spring框架和ActiveMQ实现高效、可靠的JMS通信的教程或示例。通过学习这个主题,开发者可以掌握如何在Java环境中构建健壮的、分布式的消息驱动系统。
Spring、JMS、ActiveMQ和Tomcat是Java开发中常用的技术组件,它们分别扮演着不同的角色,构建出高效的企业级消息通信系统。本教程将详细阐述这些技术的使用及其相互结合的方式。 首先,Spring是一个开源的Java应用...
1. **添加依赖**:在Maven项目中,需要添加Spring JMS和ActiveMQ的相关依赖。这些依赖包括但不限于Spring的context、jms模块,以及ActiveMQ的核心库。 2. **ActiveMQ的准备**:下载并安装ActiveMQ,通常是在Apache...
1. 添加依赖:在项目的Maven或Gradle配置文件中引入ActiveMQ和Spring JMS的相关库。 2. 配置ConnectionFactory:这是连接到ActiveMQ服务器的关键,可以通过XML配置或Java配置来定义。 3. 创建Destination:JMS中的...
基于Spring+JMS+ActiveMQ+Tomcat,做一个Spring4.1.0和ActiveMQ5.11.1整合实例,实现了Point-To-Point的异步队列消息和PUB/SUB(发布/订阅)模型,简单实例,不包含任何业务。
《Spring与ActiveMQ整合实战详解》 在Java开发领域,Spring框架和ActiveMQ是两个非常重要的...这个实例源码是一个很好的学习起点,可以帮助开发者深入理解Spring JMS和ActiveMQ的使用,为实际项目开发打下坚实的基础。
基于Spring+JMS+ActiveMQ+Tomcat的整合ActiveMQSpringDemo实例源码,此实例基于Spring+JMS+ActiveMQ+Tomcat,注解的完整实例,包含jar包,可供学习及设计参考。
标题“jms+activeMq+spring学习简单例子”表明这个压缩包包含了一些示例代码,用于演示如何在Spring框架中集成JMS和ActiveMQ,以便于理解和学习。通过这个例子,开发者可以了解如何在实际应用中实现基于消息的通信。...
1. **PPTX文件(activemq.pptx)** - 这通常是一个演示文稿,详细介绍了JMS和ActiveMQ的基础知识、工作原理以及如何使用它们。它可能包含概念解释、架构图、配置示例和使用步骤等内容,帮助学习者理解ActiveMQ的核心...
ActiveMQ的主要特点包括支持多种编程语言和协议的客户端、完全支持JMS 1.1和J2EE 1.4规范、对Spring的支持、支持多种传输协议以及持久化和事务处理能力。 在实际的项目中,消息队列经常被用于将一些耗时的操作,如...
将Spring与ActiveMQ整合,可以轻松地在Spring应用中实现消息队列的功能,提高系统的可扩展性和可靠性。 首先,让我们了解Spring框架如何支持消息传递。Spring提供了JmsTemplate类,这是一个模板类,用于简化发送和...
整合Spring与ActiveMQ,首先需要在Spring配置文件中定义一个JMS模板,这是一个便捷的工具类,可以用来发送和接收消息。例如: ```xml <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> ...
在本文中,我们将深入探讨如何在Java Spring框架中使用ActiveMQ进行消息传递。Spring与ActiveMQ的集成...在实际开发中,我们应充分利用Spring JMS模块的便利性和ActiveMQ的高性能特性,确保系统间的通信稳定、高效。