spring-messaging

勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

导读:本篇文章讲解 spring-messaging,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

概述

spring框架作为java开源世界的集大成者,

spring-messaging模块为集成messaging api和消息协议提供支持。

在这里插入图片描述

其代码结构为:包括base、converter、core、handler、simp、support、tcp
其中base定义消息Message(MessageHeader和body)、消息处理MessageHandler、发送消息MessageChannel。

message由两部分组成,header & payload;
MessageHandler是一个处理消息的约定,spring messaging提供丰富的消息处理方式。
MessageChannel表现为pipes-and-filters架构的管道。

converter

在这里插入图片描述

public abstract class AbstractMessageConverter implements SmartMessageConverter {
    @Nullable
    private ContentTypeResolver contentTypeResolver;
}

有消息到string、json、byte数组之间的相互转换。

core

核心模块提供消息的模板方法,

handler

HandlerMethod封装一个bean的方法相关信息(getMethod()和getBean()方法),提供访问方法参数的便利工具。HandlerMethod可以在bean factory中使用createWithResolvedBean获取bean实例时获取该实例。
MessageCondition是一个将conditions映射到message的约定。
HandlerMethodArgumentResolver 是一个解析方法参数到Context中指定Message的参数值的策略接口。
HandlerMethodReturnValueHandler是一个处理从触发一个Message的method Handling返回值的策略接口。
另外,也提供部分注解:
@interface Header:Annotation which indicates that a method parameter should be bound to a message header.
@interface Headers:Annotation which indicates that a method parameter should be bound to the headers of a message. The annotated parameter must be assignable to {@link java.util.Map} with String keys and Object values.
@interface MessageExceptionHandler: Annotation for handling exceptions thrown from message-handling methods within a specific handler class.
@interface MessageMapping:Annotation for mapping a {@link Message} onto message-handling methods by matching to the message destination.
@interface Payload:Annotation that binds a method parameter to the payload of a message. The payload may be passed through a {@link   MessageConverter} to convert it from serialized form with specific MIME type to an Object matching the target method parameter.
@interface SendTo:Annotation that indicates a method’s return value should be converted to a {@link Message} and sent to the specified destination.

rsocket

simp

包含诸如STOMP协议的简单消息协议的通用支持。

STOMP,Streaming Text Orientated Message Protocol,是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息的中间件)设计的简单文本协议。它提供一个可互操作的连接格式,允许STOMP客户端与任意STOMP消息代理(Broker)进行交互,类似于OpenWire(一种二进制协议)。由于其设计简单,很容易开发客户端,因此在多种语言和多种平台上得到广泛应用。其中最流行的STOMP消息代理是Apache ActiveMQ。

在这里插入图片描述

support

提供Message的实现,及创建消息的MessageBuilder和获取消息头的MessageHeaderAccessor,还有各种不同的MessageChannel实现和channel interceptor支持。

tcp

一方面提供通过TcpOperations建立tcp connection、通过TcpConnectionHandler处理消息和通过TcpConnectionf发送消息的抽象及实现;另一方面包含对基于Reactor的tcp 消息支持。

参考

官方文档
spring-messaging模块详解

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/142163.html

(0)

相关推荐

  • Java虚拟机JVM简介与理解(一)

    导读:本篇文章讲解 Java虚拟机JVM简介与理解(一),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年2月17日
    00
  • RabbitMQ队列阻塞该如何处理

    导读:本篇文章讲解 RabbitMQ队列阻塞该如何处理,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年2月13日
    00
  • 数据结构之优先级队列【堆】(Heap)

    导读:本篇文章讲解 数据结构之优先级队列【堆】(Heap),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年2月4日
    00
  • Tomcat – mac – 部署web项目

    导读:本篇文章讲解 Tomcat – mac – 部署web项目,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年2月22日
    00
  • 同步异步、阻塞非阻塞、并发并行等几组概念对比

    勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

    导读:本篇文章讲解 同步异步、阻塞非阻塞、并发并行等几组概念对比,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    技术随笔 2023年5月8日
    00
  • SpringBoot 事务不回滚?怎么解决?

    导读:本篇文章讲解 SpringBoot 事务不回滚?怎么解决?,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年2月8日
    00
  • js轮播图练习

    导读:本篇文章讲解 js轮播图练习,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年2月15日
    00
  • leetCode86. 分隔链表

    导读:本篇文章讲解 leetCode86. 分隔链表,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年2月10日
    00
  • 【vue】vue-clipboard2剪贴板示例

    导读:本篇文章讲解 【vue】vue-clipboard2剪贴板示例,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    2023年2月5日
    00
  • Zabbix 数据库表结构说明

    导读:本篇文章讲解 Zabbix 数据库表结构说明,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    技术随笔 2023年1月15日
    00

发表回复

登录后才能评论