`
aphenix
  • 浏览: 9521 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

MessageConverter

 
阅读更多

在查看项目代码中发现,同事写的spring 接收activeMQ信息中的一段代码:

 

spring  配置片段:

 

 

<bean id="topicListener" class="org.springframework.jms.listener.adapter.MessageListenerAdapter">

<constructor-arg ref="topicConsumer" />

<!-- 指定消费消息的方法 -->

<property name="defaultListenerMethod" value="receive" />

<!-- custom MessageConverter define -->

<property name="messageConverter" ref="defaultMessageConverter" />

</bean>

 

defaultMessageConverter   重写了messageConverter接口,spring 默认的是: 

org.springframework.jms.support.converter.SimpleMessageConverter

 

messageConverter,片段:

 

fromMessage方法,接受信息根据收到的message类型来进行处理:

 

 

   // POJO must implements Seralizable

                ByteArrayInputStream bis = new ByteArrayInputStream(map.get("POJO"));

                ObjectInputStream ois = new ObjectInputStream(bis);

                Object returnObject = ois.readObject();

                return returnObject;

发现IO操作没有关闭动作。

 

查api发现:ByteArrayInputStream 关闭 ByteArrayInputStream 无效

                 ObjectInputStream  关闭输入流。必须调用此方法才能释放与流相关的所有资源。

 

结论:1.ByteArrayInputStream 、ByteArrayOutputStream不用关闭。

          2. ObjectInputStream 、ObjectOutputStream需要关闭。

 3.网上粘贴的代码要仔细检查。

 

 

 

 

 

分享到:
评论

相关推荐

    Spring整合JMS(三)——MessageConverter介绍

    本文将深入探讨Spring与JMS的整合,特别是MessageConverter的概念及其作用。 一、Spring JMS概述 Spring提供了对JMS的全面支持,包括连接工厂配置、消息生产者、消费者以及消息转换器等。JMS允许应用程序通过消息...

    springMVC rest风格视图解析

    在实际开发中,我们可能还需要自定义MessageConverter,或者调整内置MessageConverter的优先级,以满足特定的项目需求。这可以通过在配置文件中配置`&lt;mvc:message-converters&gt;`来实现。 总的来说,Spring MVC通过其...

    基于springboot集成mybatis、durid和自定义消息转换项目

    在本项目中,我们主要探讨的是如何将Spring Boot与MyBatis、Druid以及自定义消息转换器(MessageConverter)进行集成,以构建一个高效、可扩展的应用程序。Spring Boot以其简洁的配置和快速的开发体验深受开发者喜爱...

    ActiveMQ与spring集成实例之使用消息转换器

    &lt;bean id="jsonMessageConverter" class="org.springframework.jms.support.converter.MappingJackson2MessageConverter"&gt; &lt;bean id="messageConverter" class="org.springframework.jms.config....

    SpringMVC使用@ResponseBody.rar

    例如,如果客户端请求JSON,而服务器端返回一个XML对象,`@ResponseBody`会尝试找到适当的`MessageConverter`来完成转换。 4. **异常处理** 当`@ResponseBody`方法抛出异常时,Spring MVC会自动捕获并处理这些异常...

    spring-amqp 1.5.3源码

    4. **MessageConverter**:Spring AMQP提供了一系列的MessageConverter实现,如Jackson2JsonMessageConverter,用于在消息对象与AMQP Message之间进行转换,确保数据在传输过程中的正确性。 在源码中,我们可以看到...

    springMVC的消息转换器(Message Converter) 1

    MessageConverter的作用就是将这些格式化的数据转化为Java对象,反之亦然。 请求体通常包含JSON、XML或其他格式的数据,而查询参数和表单参数则以不同的方式存在。Content-Type头部用来指示请求体或响应体的数据...

    JMS-Spring

    3. **MessageConverter**: 当需要在发送和接收消息时进行类型转换时,`MessageConverter`接口就派上用场了。例如,我们可以使用`SimpleMessageConverter`,它默认支持字符串和byte数组的转换。 在实际应用中,我们...

    springmvc log4j2 logback 注解 jackson 日志脱敏实现源码

    在IT行业中,日志记录是系统监控和故障排查的关键环节,但同时也涉及到用户隐私保护的问题。日志脱敏就是一种确保敏感数据在日志中不被泄露的技术手段。本资源包含的是关于`SpringMVC`、`Log4j2`、`Logback`以及`...

    Spring JMS

    同时,Spring JMS 也提供了 MessageConverter 抽象,以在 Java 对象和 JMS 消息之间进行转换。 在 Spring JMS 中,还提供了管理 JMS 目标的不同策略,比如针对 JNDI 中保存的目标的服务定位器。同时,Spring JMS 也...

    SpringMVC源码总结(四)由StringHttpMessageConverter引出的客户端服务器端之间的乱码过程分析

    Spring MVC在接收到请求时,会通过MessageConverter链来处理请求体。StringHttpMessageConverter是这个链上的一员,它会检查请求头中的Content-Type字段来确定数据的字符编码。如果找不到合适的编码,Spring MVC会...

    springboot集成rabbitMQ

    public Jackson2JsonMessageConverter producerJackson2MessageConverter() { return new Jackson2JsonMessageConverter(); } } ``` ##### 2. 生产者的实现 - **创建消息生产者** (`MessegeProducer.java`):...

    springboot-源码解析-个人分析

    `MessageConverter`是另一个扩展点,例如`SimpleRabbitListenerContainerFactory`的子类可以重写`setMessageConverter`方法来设置自定义的转换器,如`Jackson2XmlMessageConverter`、`Jackson2JsonMessageConverter`...

    spring-boot集成RabbitMQ

    如果需要自定义消息的序列化和反序列化,可以实现 `MessageConverter` 接口,比如使用 Jackson JSON 支持: ```java @Component public class JsonMessageConverter extends AbstractMessageConverter { ...

    自定义日志脱敏组件,简单3 步完成 Spring Boot 的日志脱敏

    对于日志脱敏的方式有很多,常见的有①使用conversionRule标签,继承MessageConverter②书写一个脱敏工具类,在打印日志的时候对特定特字段进行脱敏返回。 两种方式各有优缺点:第一种方式需要修改代码,不符合开闭...

    springboot整合rabbitmq转发mqtt

    public MqttMessageConverter messageConverter() { return new DefaultMqttPahoMessageConverter(); } } ``` 接下来,我们需要定义一个MQTT消息监听器,用于接收并处理来自MQTT的消息。创建一个名为`...

    jackson-core-2.5.0.jar

    通过自定义`MessageConverter`或者调整Spring的配置,我们可以定制Jackson的行为,比如改变默认的日期格式,或者添加自定义的序列化模块。 在实际开发中,`jackson-core-2.5.0.jar`的使用往往结合`jackson-databind...

    Springboot-rabbitmq.zip

    例如,可以创建一个支持JSON的`Jackson2JsonMessageConverter`,或者根据业务需求实现自定义的转换逻辑。 此外,项目可能还涉及到`AmqpTemplate`的扩展,以实现更高级的功能,如延迟消息、优先级消息或者死信交换等...

    springmvc操作json数据所需的jar包

    为了在Spring MVC中处理JSON,我们需要在配置文件中启用`@EnableWebMvc`或`&lt;mvc:annotation-driven&gt;`,这会自动配置`MessageConverter`,包括处理JSON的`MappingJackson2HttpMessageConverter`(如果已经添加了...

    8583Server.zip

    通过`MessageConverter`,我们可以将8583报文的二进制数据转换为Java对象,方便业务逻辑处理。此外,Spring的`WebSocket`和`WebSocketContainer`组件也可用于更高级的WebSocket通信,但此处可能是基于简单TCP Socket...

Global site tag (gtag.js) - Google Analytics