- 浏览: 7339300 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在Spring JMS、中可以通过实现MessageConverter自定义自己的消息转换器实现消息的转换。在Spring 的JMS1.1有SimpleMessageConverter实现基本的消息转换,在JMS1.02中SimpleMessageConverter102实现消息的转换的工作。
package com.easyway.jboss.jms.ptp.service; public class SMS implements java.io.Serializable{ /** * */ private static final long serialVersionUID = 1L; private String username; private String message; public SMS(){ } public SMS(String username,String message){ this.username=username; this.message=message; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
消息转换器:
package com.easyway.jboss.jms.ptp.spring.service; import javax.jms.JMSException; import javax.jms.MapMessage; import javax.jms.Message; import javax.jms.Session; import org.springframework.jms.support.converter.MessageConversionException; import org.springframework.jms.support.converter.MessageConverter; import com.easyway.jboss.jms.ptp.service.SMS; /** * 自定义消息转换器MessageConverter实现 * 在JmsTemplate提供了各种send方法,供发送消息使用,其中JmsTemplate中的 * convertAndSend和receiveAndConvert方法能够借助于MessageConverter接口 * 实现消息做相应的转换。 * JMS1.1中SimpleMessageConverter实现String与TextMessage,等之间的转换 * @author longgangbai * */ public class SMSConverter implements MessageConverter { @Override public Object fromMessage(Message message) throws JMSException, MessageConversionException { SMS sms=new SMS(); MapMessage mapmessage= (MapMessage )message; sms.setMessage(mapmessage.getString("message")); sms.setUsername(mapmessage.getString("username")); return sms; } @Override public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException { SMS sms=(SMS)object; MapMessage mapmessage=session.createMapMessage(); mapmessage.setString("username", sms.getUsername()); mapmessage.setString("message", sms.getMessage()); return mapmessage; } }
applicationContext-cjms-sender.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:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- 设置消息服务的初始化参数信息 --> <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> <property name="environment"> <props> <prop key="java.naming.factory.initial"> org.jnp.interfaces.NamingContextFactory </prop> <prop key="java.naming.provider.url"> jnp://localhost:1099 </prop> <prop key="java.naming.factory.url.pkgs"> org.jboss.naming:org.jnp.interfaces </prop> </props> </property> </bean> <!-- 创建消息服务的连接工厂的信息 JMS1.02 TopicConnectionFactory 和QueueConnectionFactory JMS1.1 TopicConnectionFactory 和QueueConnectionFactory合并为ConnectionFactory --> <bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>ConnectionFactory</value> </property> <property name="jndiTemplate"> <ref local="jndiTemplate"/> </property> </bean> <!-- 创建JMS的目的地信息 --> <bean id="destination" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>queue/longgangbai</value> </property> <property name="jndiTemplate"> <ref local="jndiTemplate"/> </property> </bean> <!-- 创建自定义转换器 --> <bean id="smsconverter" class="com.easyway.jboss.jms.ptp.spring.service.SMSConverter"></bean> <!-- 创建JMS发送信息的模板的对象 --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory"> <ref local="connectionFactory"/> </property> <property name="defaultDestination"> <ref local="destination"/> </property> <!-- 设置自定义转换器 --> <property name="messageConverter"> <ref local="smsconverter"/> </property> </bean> </beans>
发送消息的代码那:
package com.easyway.jboss.jms.ptp.spring.service; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jms.core.JmsTemplate; import com.easyway.jboss.jms.ptp.service.SMS; /** * Spring中JMS的简单应用 * Spring JMS的创建并发送 * @author longgangbai * */ public class SpringCJMSQueueSender { private static final Log log=LogFactory.getLog(SpringCJMSQueueSender.class); public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext-cjms-sender.xml"); JmsTemplate jt=(JmsTemplate)ctx.getBean("jmsTemplate"); SMS sms=new SMS(); sms.setMessage("message"); sms.setUsername("wangna"); jt.convertAndSend(sms); log.info("发送信息成功!"); } }
applicationContext-cjms-receive.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:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- 设置消息服务的初始化参数信息 --> <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"> <property name="environment"> <props> <prop key="java.naming.factory.initial"> org.jnp.interfaces.NamingContextFactory </prop> <prop key="java.naming.provider.url"> jnp://localhost:1099 </prop> <prop key="java.naming.factory.url.pkgs"> org.jboss.naming:org.jnp.interfaces </prop> </props> </property> </bean> <!-- 创建消息服务的连接工厂的信息 JMS1.02 TopicConnectionFactory 和QueueConnectionFactory JMS1.1 TopicConnectionFactory 和QueueConnectionFactory合并为ConnectionFactory --> <bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>ConnectionFactory</value> </property> <property name="jndiTemplate"> <ref local="jndiTemplate"/> </property> </bean> <!-- 创建JMS的目的地信息 --> <bean id="destination" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"> <value>queue/longgangbai</value> </property> <property name="jndiTemplate"> <ref local="jndiTemplate"/> </property> </bean> <!-- 创建自定义转换器 --> <bean id="smsconverter" class="com.easyway.jboss.jms.ptp.spring.service.SMSConverter"></bean> <!-- 创建JMS发送信息的模板的对象 --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory"> <ref local="connectionFactory"/> </property> <property name="defaultDestination"> <ref local="destination"/> </property> <!-- 设置自定义转换器 --> <property name="messageConverter"> <ref local="smsconverter"/> </property> </bean> </beans>
接收消息的代码如下:
package com.easyway.jboss.jms.ptp.spring.service; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jms.core.JmsTemplate; import com.easyway.jboss.jms.ptp.service.SMS; /** * Spring JMS 消息的接受 * @author longgangbai * */ public class SpringCJMSQueueReceive { private static final Log log=LogFactory.getLog(SpringCJMSQueueReceive.class); public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext-cjms-receive.xml"); JmsTemplate jt=(JmsTemplate)ctx.getBean("jmsTemplate"); SMS sms=(SMS)jt.receiveAndConvert(); System.out.println("username:"+sms.getUsername()); System.out.println("message:"+sms.getMessage()); System.out.println("......."); } }
发表评论
-
【转】在项目中使用多个数据源-多sessionFactory方案
2013-05-10 16:30 3131适用范围:适合SSH架构访问多个数据库, ... -
【转】使用spring的动态路由实现数据库负载均衡
2013-03-17 22:57 3307使用spring的动态路由实现数据库负载均衡 系统中 ... -
【转】spring 数据库读写分离
2013-03-17 22:56 2804什么是数据库的读写分离 数据库的读写分离简单的说是把对数据 ... -
[转]Spring+iBatis+JOTM实现JTA事务
2013-03-17 22:51 3059Spring+iBatis+JOTM实现JTA事务 ... -
Spring 和Axis2整合相关那些事
2012-12-29 12:58 10421Axis2优劣: 现在用axis2开发一个webse ... -
【转】JAVA并发容器代码随读
2012-12-06 15:29 2953转载自 http://rdc.taobao.c ... -
Spring3.04和Junit4
2011-11-27 18:15 4396在Spring3.x以上必须采用 ... -
Spring加载属性文件的扩展
2011-08-22 12:21 3026在项目中一个属性文件配置信息,提供给数据连接信息 ... -
Brap和Spring整合(简单权限验证)
2011-07-26 10:31 1390在使用Spring的发 ... -
Quartz的任务的临时启动和暂停和恢复
2011-07-16 10:18 40226在项目中需要手动启停某些服务,那么需要有一个控 ... -
Quartz中定时调度EJB3.0服务
2011-07-13 22:25 2937在quartz2.0中只支持EJb2.0的服务 ... -
Quartz中定时调度EJB2.0服务
2011-07-13 22:12 2181在Quartz2.0中提供支持EJB2.0 ... -
Quartz的简单使用
2011-07-13 22:05 9956最近工作需要学习quartz,那么必须首先了解三个概念:调度器 ... -
Brap 远程访问调用 和Spring整合(二)
2010-12-08 14:52 2006Brap和 Spring 整合使用如 ... -
闲着没事Hessian开发WebService的总结(二)
2010-12-07 20:30 4034在Spring和Hessian整合中,以前 ... -
Spring JMX的学习总结(三) 基于注释的JMX的使用
2010-12-03 17:26 3362具体实现JMX的注释的类: package c ... -
Spring JMX的总结学习(二) 注解实现MBean
2010-12-03 17:24 6281本文采用Spring JMX ... -
Spring JMX的总结学习(一)基于标准接口的JMX
2010-12-03 17:21 3780在Spring中采用JMX标准形式的,开发相关的Spr ... -
Spring JBOSSMQ JMS的开发应用(三)
2010-11-30 20:11 2345如果用过JMS的话,会发现它类似写JD ... -
Spring中AOP实现EHCache的整合中采用SpringModule结合(二)
2010-09-01 19:22 2448在Spring中通过EHCa ...
相关推荐
Spring 提供了多种内置的消息转换器,如 `SimpleMessageConverter` 和 `XmlMessageConverter`,但也可以自定义转换器。 例如,如果我们要将 Java 对象转换为 JSON 格式并发送,可以使用 Jackson 库配合 `...
通过定义消息通道(channels)、消息源(sources)、消息处理器(gateways)和消息转换器(transformers),可以构建出强大的集成解决方案。同时,其丰富的监控和日志记录功能也有助于排查和优化系统的运行情况。 ...
Registering a LoadTimeWeaver允许在应用类加载器的加载时将类转换器应用到类上。 此外,ApplicationContext接口提供了Spring IoC容器的主要实现,它扩展了BeanFactory接口,增加了更多的企业级功能,如支持国际化...
7. **消息转换器**: Spring JMS提供了一些内置的消息转换器,如`StringMessageConverter`,可以根据需要自定义转换规则,确保消息体能在消息生产者和消费者之间正确转换。 8. **Web层整合**: 将JMS与RESTful API...
Spring提供了对JMS的全面支持,包括连接工厂配置、消息生产者、消费者以及消息转换器等。JMS允许应用程序通过消息中间件进行解耦通信,提高系统的可扩展性和可靠性。Spring JMS抽象了JMS API,提供了更易于使用的...
Spring框架作为一个强大的企业级应用开发框架,提供了对JMS的全面支持,使得开发者能够方便地在Spring应用中集成JMS,实现异步消息处理和高可用性。 一、JMS简介 JMS是一种API,用于在分布式环境中发送、接收和管理...
#### 四、使用Spring Security保护BlazeDS目的地 ##### 4.1 引言 为了确保应用程序的安全性,需要对BlazeDS目的地进行访问控制。Spring Security提供了一种强大的方式来实现这一点。 ##### 4.2 配置Spring ...
Spring-JMS Spring的生态 Spring Boot Spring XD Spring Cloud Spring Data Spring Integration Spring Batch Spring Security Spring HATEOAS Spring ...
Spring提供了强大的验证、数据绑定和类型转换功能,这对于Web开发尤为重要。主要包括以下几个方面: - **Validation using Spring’s Validator interface**:Spring支持通过Validator接口实现数据验证。 - **...
当我们谈论"Spring整合JMS"时,意味着我们要将Spring框架与Java消息服务(Java Message Service)进行集成,以便利用JMS的异步通信能力来处理应用程序中的消息传递。 **JMS简介** JMS是一种标准API,用于在分布式...
总的来说,Spring MQ的使用能够帮助开发者轻松地在Spring应用中实现消息驱动的架构,提升系统的稳定性和扩展性。"spring-MQ-main"项目可能包含了这些概念的实现,通过学习和运行这个项目,你可以更深入地理解和掌握...
Spring框架是一个轻量级的Java应用开发框架,旨在简化企业级应用的开发过程。它通过提供一系列强大的特性来实现这一目标,比如依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, ...
Spring框架是Java开发中不可或缺的一部分,它以其模块化、易用性和灵活性著称。源码分析可以帮助我们深入了解其内部机制,提升我们的编程技能。以下是对标题"spring的jar包源码"和描述"spring的jar包源码"中涉及的...
6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...
19.3.1. 使用消息转换器 19.3.2. SessionCallback 和ProducerCallback 19.4. 接收消息 19.4.1. 同步接收 19.4.2. 异步接收 - 消息驱动的POJOs 19.4.3. SessionAwareMessageListener 接口 19.4.4. ...
五、消息转换器与消息模板 Spring Messaging提供了`MessageConverter`接口,用于在消息体和Java对象之间进行转换。常见的实现有`SimpleMessageConverter`和`Jackson2JsonMessageConverter`,分别支持基本类型和JSON...
- **Spring Integration 如何简化集成开发:** 通过使用标准的 Java POJO 和 Spring Bean 定义,简化了集成应用的开发和维护过程。 #### Part 2 - 消息传递 **3: 消息和通道** - **消息模型:** 解释了 Spring ...
- **@IntegrationConverter**:自定义消息转换器,可以在消息转换过程中进行转换。 - **@EnablePublisher**:用于启用对发布者的支持,能够发送消息到一个或多个订阅者。 - **Redis Channel Message Stores**:使用 ...
Spring Framework 是一个开源的企业级 Java 应用程序框架,旨在简化企业级应用程序的开发过程。它提供了全面的编程模型,使得开发者能够更轻松地构建和维护复杂的应用系统。 **1.2 依赖注入与控制反转** - **1.2.1...