- 浏览: 308702 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (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 1499AuthByAdapterProvider: 通过 ... -
Spring提供的几种加密类
2012-03-21 13:55 1841执行认证操作公共接口: PasswordEncoder ... -
用ProxyFactoryBean创建AOP代理
2011-09-07 21:58 1242用ProxyFactoryBean创建AOP代理 使用Spr ... -
Spring3.0带来的新特性
2011-04-01 16:52 1089一、首先,模块的组织更加的细致,从那么多的jar分包就看的出来 ... -
Spring Annotation总结
2010-06-08 15:57 1224@Autowired 注释 对 ... -
配置Spring的数据源
2010-06-08 13:00 808不管通过何种持久化技术,都必须通过数据连接访问数据库,在Spr ... -
Spring中使用annotation注入
2010-06-06 12:03 1079我们使用Spring 一般式在xml配置文件中进行 ... -
Spring AOP中的Aspect
2010-06-04 10:24 1134当所有的Pointcut和Advice准备好之后,就到了该把它 ... -
Spring的3种切入点(Pointcut)实现
2010-06-04 10:04 2199Spring的3种切入点(Pointc ...
相关推荐
在本项目中,Spring与WebLogic JMS(Java消息服务)的集成展示了如何在Spring环境中使用消息队列进行通信。 WebLogic JMS是Oracle WebLogic Server提供的消息中间件,它遵循JMS规范,用于在分布式环境中传递消息,...
1) 本工程主要演示在SPRING BOOT工程中怎样使用JMS集成IBM-MQ及TLQ两种消息中间件产品 2) 使用SPRING BOOT Conditional机制实现了两种产品按需加载,工程会根据配置文件开关动态加载 3) 实现了普通队列消息发送与...
总结起来,这个"spring_jms"实例旨在帮助初学者了解如何在Spring应用中使用JMS进行异步通信。通过结合Maven、Spring框架和ActiveMQ,我们可以构建一个高效、可靠的分布式消息系统,提升应用的性能和灵活性。通过深入...
Spring的JMS支持使得在应用中使用消息传递变得简单且灵活。通过配置`ConnectionFactory`、`JmsTemplate`和消息监听器,我们可以方便地实现消息的发送和接收,从而提高系统的可扩展性和解耦性。同时,Spring提供的...
它提供了一个简单的API,使得开发者能够方便地在应用中使用消息传递功能。本文将深入探讨Spring-JMS的基础知识,包括它的核心概念、配置以及如何与ActiveMQ这样的消息中间件进行集成。 **1. JMS简介** Java消息服务...
在本文中,我们将深入探讨SpringJMS的基本概念、如何与ActiveMQ集成,以及如何通过示例代码理解其工作原理。 1. **SpringJMS简介** SpringJMS是Spring框架对JMS API的包装,它简化了生产者和消费者之间的消息通信...
spring-jmsspring-jmsspring-jmsspring-jmsspring-jmsspring-jms
文件"基于Spring的JMS编程-1"可能包含了关于如何在Spring环境中配置和使用JMS的详细步骤,包括XML配置、代码示例以及可能的实战项目案例。进一步学习这些内容,你将能够熟练掌握Spring框架下的JMS编程技巧,从而在...
在IT行业中,Spring框架是Java领域最广泛应用的轻量级框架之一,而JMS(Java Message Service)则是一种标准接口,用于在分布式系统中进行异步消息传递。ActivemQ是Apache软件基金会的一个项目,它实现了JMS规范,...
在Spring框架中,我们可以使用`org.springframework.jms`包中的类和接口来处理JMS相关的任务。下面将详细介绍如何整合JMS与Spring,以及一个简单的实例。 ### 1. 添加依赖 首先,你需要在项目的构建文件(如Maven...
将JMS与Spring整合,可以更加便捷地在Spring应用中使用消息队列。 本项目"jms整合spring工程"是一个已经准备就绪的Java工程,它展示了如何在Spring框架中集成JMS,以便利用消息队列进行通信。主要依赖的是Apache ...
3. **配置JMS配置文件**: 在Spring的配置文件中,你需要定义JMS相关的bean,如ConnectionFactory和Destination。例如,你可以使用`<jee:jndi-lookup>`标签来查找在WebLogic中创建的JMS资源。 ```xml ...
在Spring JMS中,`JmsTemplate`是核心组件,它有两种实现:JmsTemplate(基于JMS 1.1 API)和JmsTemplate102(基于JMS 1.0.2 API)。在示例应用程序中,通常会选择与目标JMS提供者兼容的版本。`JmsTemplate`通过回调...
赠送jar包:spring-jms-4.3.12.RELEASE.jar; 赠送原API文档:spring-jms-4.3.12.RELEASE-javadoc.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
org.springframework.jms.core 包提供了在 Spring 中使用 JMS 的核心功能。JMS 模板类提供了执行公共操作的 helper 方法,在需要更复杂应用的情况下,类把处理任务的核心委托给用户实现的回调接口。 Spring JMS 还...
在JMS中,事务有两种类型:Local事务和XAJMS事务。Local事务仅在JMS提供者内部进行,适用于简单场景。XAJMS事务则涉及到JMS和JTA(Java Transaction API)的交互,能实现跨资源的分布式事务,更适用于复杂的系统集成...
赠送jar包:spring-jms-4.3.20.RELEASE.jar; 赠送原API文档:spring-jms-4.3.20.RELEASE-javadoc.jar; 赠送源代码:spring-jms-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
在Java世界中,ActiveMQ和Spring的整合是企业级应用中常见的消息中间件解决方案,用于实现JMS(Java Message Service)消息传递。本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的...
本示例"jms-spring.zip"可能是包含了Spring集成JMS与ActiveMQ的演示代码,帮助开发者理解如何在Spring应用中配置和使用JMS。以下是关于Spring与JMS集成的关键知识点: 1. **JMS基本概念**: - **消息**:数据传输...