- 浏览: 507360 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
ben_wu007:
没数据库设计 而且这样要写代码 还是做成配数据库好 ...
使用AOP做权限控制 -
邢邢色色:
支持楼主,但这本书没有讲trident,有些过时了~到amaz ...
《Storm入门》中文版 -
java_web_hack1:
我在FunctionProvider中,获取的Property ...
在Osworkflow中使用PropertySet存储业务数据 -
greemranqq:
腾飞 ~。~
Java并发和多线程译者征集 -
fantasy:
leonevo 写道hi, 我也在设计cmdb. 我觉得基于传 ...
ITSM-CMDB数据库设计-四种方案任你选
什么是JMS?
JMS即java消息服务,JMS通过消息的形式来降低组件之间的耦合度。
JMS由两部分组成消息发送者和消息监听者。
JMS的运用场景?
用户系统负责维护用户信息,文档系统负责维护文档信息,但是当用户删除的时候,需要将他所撰写的文档信息也删除的时候,在用户管理模块调用文档管理模块的接口,会造成用户模块和业务模块紧耦合。
这个时候可以使用JMS技术来将紧耦合转化为松耦合,具体做法是用户系统在删除,修改用户的时候往JMS服务器发送更新消息,又业务系统监听这些消息,然后按照自己的业务逻辑来进行相应的处理。
即组件A做了一件事情往消息服务器上发送了一个通知,组件B监听到了消息,处理自己的业务逻辑。
详细步骤:
1:配置消息服务器:配置JMS需要两个对象connectionFactory和 destination。
connectionFactory使用jboss自带的TopicConnectionFactory。
destination可以使用自定义的。
kiral-jms-service.xml 注意:文件名称一定要是-service.xml结尾。这个文件放在部署目录下。
xml 代码
- <!---->< xml version = "1.0" encoding = "UTF-8" ?>
- < server >
- < mbean code = "org.jboss.mq.server.jmx.Topic"
- name = "jboss.mq.destination:service=Topic,name=kiralJms" >
- < depends optional-attribute-name = "DestinationManager" > jboss.mq:service = DestinationManager depends >
- < depends optional-attribute-name = "SecurityManager" > jboss.mq:service = SecurityManager depends >
- < attribute name = "SecurityConf" >
- < security >
- < role name = "guest" read = "true" write = "true" />
- < role name = "publisher" read = "true" write = "true" create = "false" />
- < role name = "durpublisher" read = "true" write = "true" create = "true" />
- security >
- attribute >
- mbean >
- server >
2:配置发送消息端
bean-jms.xml
xml 代码
- <!---->xml version = "1.0" encoding = "GB2312" ?>
- < beans >
- < bean id = "jmsConnectionFactory"
- class = "org.springframework.jndi.JndiObjectFactoryBean" >
- < property name = "jndiName" >
- < value > TopicConnectionFactory value >
- property >
- bean >
- < bean id = "destination"
- class = "org.springframework.jndi.JndiObjectFactoryBean" >
- < property name = "jndiName" >
- < value > topic/kiralJms value >
- property >
- bean >
- <!---->
- < bean id = "jmsTemplate"
- class = "org.springframework.jms.core.JmsTemplate" >
- < property name = "connectionFactory" >
- < bean
- class = "org.springframework.jms.connection.SingleConnectionFactory" >
- < property name = "targetConnectionFactory"
- ref = "jmsConnectionFactory" />
- bean >
- property >
- bean >
- <!----> <!---->
- < bean id = "messageProducer"
- class = "jms.MessageProducer" >
- < property name = "template" ref = "jmsTemplate" />
- < property name = "destination" ref = "destination" />
- bean >
- beans >
java 代码
- 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;
- /***********************************************************
- * 消息发送者
- *
- * @作者:kiral
- * @日期:2007-7-3
- **********************************************************/
- public class MessageProducer {
- public void send( final String message) {
- template.send(destination, new MessageCreator() {
- public Message createMessage(Session session) throws JMSException {
- Message m = session.createTextMessage(message);
- return m;
- }
- });
- }
- private JmsTemplate template;
- private Destination destination;
- public void setDestination(Destination destination) {
- this .destination = destination;
- }
- public void setTemplate(JmsTemplate template) {
- this .template = template;
- }
- }
发送方调用send方法发送消息。
3:配置消息接收者
xml 代码
- <!---->< xml version = "1.0" encoding = "UTF-8" ?>
- <!---->
- < beans >
- < bean id = "jmsConnectionFactory"
- class = "org.springframework.jndi.JndiObjectFactoryBean" >
- < property name = "jndiName" >
- < value > TopicConnectionFactory value >
- property >
- < bean >
- < bean id = "destination"
- class = "org.springframework.jndi.JndiObjectFactoryBean" >
- < property name = "jndiName" >
- < value > topic/kiralJms value >
- property >
- < bean >
- <!---->
- < bean id = "messageListener"
- class = "jms.MessageConsumer" >
- < property name = "worksheetService" ref = "worksheetService" > property >
- < bean >
- <!---->
- < bean id = "listenerContainer"
- class = "org.springframework.jms.listener.DefaultMessageListenerContainer" >
- < property name = "connectionFactory" ref = "jmsConnectionFactory" />
- < property name = "destination" ref = "destination" />
- < property name = "messageListener" ref = "messageListener" />
- < bean >
- < beans >
java 代码
- import javax.jms.Message;
- import javax.jms.MessageListener;
- import org.kiral.flow.service.WorksheetService;
- /*******************************************************************************
- * 消息接收者
- *
- * @作者:kiral
- * @日期:2007-7-3
- ******************************************************************************/
- public class MessageConsumer implements MessageListener {
- private WorksheetService worksheetService;
- public WorksheetService getWorksheetService() {
- return worksheetService;
- }
- public void setWorksheetService(WorksheetService worksheetService) {
- this .worksheetService = worksheetService;
- }
- public void onMessage(Message message) {
- System.out.println(message);
- worksheetService.updateRole();
- }
- }
接受方一旦接收到消息,就会打印在控制台。
评论
4 楼
fantasy
2007-10-23
对不起,现在工作忙,没有时间做这个例子
3 楼
crabboy
2007-10-22
建议搞个打印到页面的例子
2 楼
eamon
2007-10-19
我也用SPRING JMS + ACTIVEMQ做了异步收发的例子,但测试的时候,发现数据好不理想,发送端每秒也只能发50条的消息,接收服务器倒是没有性能上的问题,不知道是什么原因引起了.JMS的性能不会如此差吧.不知道谁有测试过的性能报告.....
1 楼
crabboy
2007-09-03
能否提供有消息发送时,及时打印到页面上的例子?
发表评论
-
Google Guava官方教程(中文版)
2014-10-24 23:48 2915原文链接 译文链接 ... -
《Storm入门》中文版
2014-05-28 12:38 2292本文翻译自《Getting Star ... -
《Java 7 并发编程指南》中文版
2013-11-03 17:00 8923原文链接 作者: Javier Fernández Gonz ... -
Java NIO系列教程
2013-06-25 17:03 4148原文地址:http://tutorials.jenkov.c ... -
[并发译文]Java内存模型手册
2013-01-20 21:13 2068原文地址:http://gee.cs.oswego.edu/ ... -
[并发编程]聊聊并发
2012-12-23 03:44 2195聊聊并发系列文章是我在InfoQ发表的并发编程连载文 ... -
构建JSONP字符串
2012-09-21 10:28 23251.咱们需要一个这样的JSONP字符串 var cal ... -
聊聊并发(二)Java SE1.6中的Synchronized
2012-05-24 13:51 2047本文属于作者原创,原文发表于InfoQ中文站。 ... -
聊聊并发(一)深入分析Volatile的实现原理
2012-02-22 09:39 2811本文属于作者原创,原文发表于InfoQ中文站。 ... -
JVM运行时数据区(2011年6月的JVM规范)
2011-10-18 13:30 1919本文是《The Java Virtual Machine Sp ... -
AOP的实现机制
2011-10-18 10:15 7710附件中有本文的源代码和Pdf版。本文写的很长的原因,是不希望大 ... -
单点登录设计
2011-09-25 15:20 4667使用独立的单点登录应用程序来做单点登录,这样可扩展性和安全性会 ... -
Java虚拟机
2011-08-25 19:50 1970JVM JVM即Java虚拟机,它是一个想象中的机器,通 ... -
HttpClient
2011-08-16 15:27 5845HttpClient是一个模拟HTTP请求的工具类,目前我们在 ... -
Eclipse插件开发
2011-07-22 11:15 1849插件开发工具 我觉得进行RCP开发还是用专门的ID ... -
Opencomet之Session设计
2011-06-24 13:08 1956本文主要介绍Opencomet 里的Session设计。见附件 ... -
单元测试用例设计
2011-06-15 22:42 1496测试用例设计的原则是短,精和易读。 如何做到短: ... -
使用AOP做权限控制
2011-06-06 20:49 6671见附件! -
JAVA6可以使用字符串累加
2011-05-12 10:42 3676在JAVA6中,编译器会始终对字符串的累加操作做优化编译。 ... -
开发中的小心得
2011-02-04 01:13 1593总结一下自己在开发上的一些小心得,持续更新,欢迎大家补充! ...
相关推荐
1) 本工程主要演示在SPRING BOOT工程中怎样使用JMS集成IBM-MQ及TLQ两种消息中间件产品 2) 使用SPRING BOOT Conditional机制实现了两种产品按需加载,工程会根据配置文件开关动态加载 3) 实现了普通队列消息发送与...
spring-jmsspring-jmsspring-jmsspring-jmsspring-jmsspring-jms
赠送jar包:spring-jms-4.3.12.RELEASE.jar; 赠送原API文档:spring-jms-4.3.12.RELEASE-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
这是本人搭建的Spring框架,集成了Weblogic JMS,测试已经完成。现提供给大家下载学习。
赠送jar包:spring-jms-4.3.20.RELEASE.jar; 赠送原API文档:spring-jms-4.3.20.RELEASE-javadoc.jar; 赠送源代码:spring-jms-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
Spring发送接收JMS消息 文档+例子
spring_jms是基于Maven+Spring+JMS+Active入门级实例.
赠送jar包:spring-jms-4.3.20.RELEASE.jar 赠送原API文档:spring-jms-4.3.20.RELEASE-javadoc.jar ...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
使用JPA访问数据库 第12章 整合其他ORM框架 第4篇 业务层应用 第13章 任务调度和异步执行器 第14章 JavaMail发送邮件 第15章 在Spring中使用JMS 第16章 在Spring中开发Web Service 第17章 使用...
spring-jms入门
spring-jms-4.0.0.RELEASE.jar spring-jms-4.0.0.RELEASE.jar spring-jms-4.0.0.RELEASE.jar spring-jms-4.0.0.RELEASE.jar
使用JPA访问数据库 第12章 整合其他ORM框架 第4篇 业务层应用 第13章 任务调度和异步执行器 第14章 JavaMail发送邮件 第15章 在Spring中使用JMS 第16章 在Spring中开发Web Service 第17章 使用...
使用JPA访问数据库 第12章 整合其他ORM框架 第4篇 业务层应用 第13章 任务调度和异步执行器 第14章 JavaMail发送邮件 第15章 在Spring中使用JMS 第16章 在Spring中开发Web Service 第17章 使用...
spring-jms-4.1.4,Spring提供的JMS工具类,它发送、接收消息
spring-jms-5.0.4.RELEASE.jar ;spring-jms-5.0.4.RELEASE.jar
activemq与spring整合发送jms消息入门实例 jar 包和实例代码都在压缩包里了
activeMQ和Spring集成的 SpringJMS示例代码,适合新手,老鸟勿喷请绕道。ps:为什么传个资源一定要设置下载分呢
org.springframework.jms-3.0.0.M4.jar
本人开发的spring jms项目,已经上线近一年了,这里是我项目jms配置文件,使用的是spring jms 整合weblogic jms。如果真的需要,请咨询我,并且附上我上传的这个配置文件,附近中没有带有这个文件,一律不作任何回答...