- 浏览: 302307 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (187)
- JAVA (66)
- JS (2)
- AJAX (9)
- Servlet (5)
- eclipse (4)
- html (2)
- PL/SQL (9)
- SOAP (1)
- other (14)
- JavaScript (8)
- Struts2 (6)
- Spring (10)
- Hibernate (5)
- JSP (1)
- Linux (3)
- WebService (2)
- 数据结构 (1)
- DB (5)
- English (1)
- maven (4)
- Code standard (2)
- SQL (1)
- 软件架构 (1)
- Tomcat (2)
- windows (1)
- HSQL (0)
- Open source framework (0)
- Web (6)
- Compass (0)
- Flex (1)
- OSGI (1)
- python (3)
- groovy (2)
- JPA (2)
- svn (1)
- jetty (1)
最新评论
-
zjfshowtime:
it doesn't work !why
Tomcat 和 Jetty 下 JNDI 配置 DBCP 连接池 -
coco5012:
Useful
sql server日期时间函数 datetime -
烟花弥散:
弱弱的问一句,您的第一个举例中else 后面可以跟判断条件吗? ...
Java高手论道:你还在用if else吗? -
coco5012:
Not very simple
使用assembly plugin实现自定义打包 -
mqlfly2008:
[color=red][size=medium][size=x ...
Java高手论道:你还在用if else吗?
什么是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();
- }
- }
接受方一旦接收到消息,就会打印在控制台。
发表评论
-
springMVC例子之Hello world(“非BeanNameUrlHandlerMapping 映射处理器”)
2012-04-17 13:39 0在上篇文章《我的第一个springMVC例子之Hello wo ... -
Acegi提供的多个Authentication Provider说明
2012-03-21 14:31 1434AuthByAdapterProvider: 通过 ... -
Spring提供的几种加密类
2012-03-21 13:55 1808执行认证操作公共接口: PasswordEncoder ... -
用ProxyFactoryBean创建AOP代理
2011-09-07 21:58 1216用ProxyFactoryBean创建AOP代理 使用Spr ... -
Spring3.0带来的新特性
2011-04-01 16:52 1059一、首先,模块的组织更加的细致,从那么多的jar分包就看的出来 ... -
Spring Annotation总结
2010-06-08 15:57 1196@Autowired 注释 对 ... -
配置Spring的数据源
2010-06-08 13:00 779不管通过何种持久化技术,都必须通过数据连接访问数据库,在Spr ... -
Spring中使用annotation注入
2010-06-06 12:03 1052我们使用Spring 一般式在xml配置文件中进行 ... -
Spring AOP中的Aspect
2010-06-04 10:24 1097当所有的Pointcut和Advice准备好之后,就到了该把它 ... -
Spring的3种切入点(Pointcut)实现
2010-06-04 10:04 2157Spring的3种切入点(Pointc ...
相关推荐
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 ...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
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
spring-jms-4.1.4,Spring提供的JMS工具类,它发送、接收消息
spring-jms-5.0.4.RELEASE.jar ;spring-jms-5.0.4.RELEASE.jar
activeMQ和Spring集成的 SpringJMS示例代码,适合新手,老鸟勿喷请绕道。ps:为什么传个资源一定要设置下载分呢
activemq与spring整合发送jms消息入门实例 jar 包和实例代码都在压缩包里了
org.springframework.jms-3.0.0.M4.jar
本人开发的spring jms项目,已经上线近一年了,这里是我项目jms配置文件,使用的是spring jms 整合weblogic jms。如果真的需要,请咨询我,并且附上我上传的这个配置文件,附近中没有带有这个文件,一律不作任何回答...
JMS如何整合Spring,简单实例,仅供参考
详细内容: SpringJMS整合ActiveMQ.doc 详细说明文档 apache-activemq-5.8.0-bin.zip ActiveMQ安装包 JMSTest.rar MyEclipse8.5下web工程
Java网络编程--基于Spring的JMS编程