spring integeration主要概念

Spring Integration 是什么? 本文主要介绍了 Java 使用 MQTT 通信的方式,由于使用了 SpringBoot,因此使用 Spring Integration 来集成会比直接只用更符合 Spring 的哲学,所有的 Bean 均单例注入统一管理。Spring Integration 的好处在于,我们只需要了解其消息通信的基本机制,屏蔽了的具体细节,便于编码。从上面的代码可以看出,我们仅仅注入了相关的 Bean,给出响相应的配置信息即可。 阅读详情

1目标和原则

SpringIntegration主要有如下两个目标:

l提供一个简单的模型来实现复杂的企业集成解决方案

l为基于Spring的应用添加异步的、消息驱动的行为,让Spring用户可以直观的、增量的采用

SpringIntegration基于两个原则:

l组件应该松耦合,方便模型化和易测试

l框架应该强制业务逻辑和集成逻辑的关注点分离

扩展点本质上应该是抽象的,而且限定在一个清晰的边界内,来促进可重用性和可移植性。

2主要组件

消息系统非常符合同样抽象的“管道和过滤器”模型。“过滤器”代表任何能够生产和(或)消费消息的组件,“管道”在过滤器间传输消息,所以组件间保持松耦合。


2.1消息

消息是任何Java对象连同框架处理对象时使用的元数据的一个通用包装。它由负载和头部组成。负载可以是任何类型,头部保存一般的请求信息,例如id,时间戳,过期时间和返回地址。头部也被用来在各种传输协议间传值。


2.2消息通道

一个消息通道代表“管道和过滤器”架构中的一个“管道”。消息生产者发送消息到通道,消息消费者从通道接收消息。消息通道因此解耦了消息组件,同时也提供了消息拦截和监控的切入点。

消息通道包括:轮询通道(PollableChannels)订阅通道(SubscribableChannel)等。

2.3消息终端

通过宣告式的配置,你可以“连接”你的领域特定代码到SpringIntegration提供的消息基础设施。负责这些连接的代码是消息终端。

2.4消息端点

就像控制器处理HTTP请求,消息端点处理消息。而控制器被映射到URL模式,消息端点被映射到消息通道。

消息转换器负责转换一个消息的内容或结构,并返回翻修改后的消息。最常见的转换器可能是把消息负载从一种格式转换成另一种格式的转换器(例如从XML文档转换成java.lang.String字符串)。

消息过滤器最终决定消息是否被发送到输出通道。

消息路由负责决定下个消息将由哪些通道接收。

消息分解器是另外一种类型的消息端点,它负责从一个输入通道中接收一个消息,把消息分解成多个消息,然后把它们发送到相应的输出通道。

集合器基本上是分解器的镜像,也是一种消息端点,它接收多个消息,然后把他们合并成一个单独的消息

服务激活器是一个连接服务实例到消息系统的通用端点

通道适配器是一个连接消息通道到其他系统或是传输的端点。通道适配器可以是接入或是接出的。典型地,通道适配器可以在消息和其他任何发送到/接收于其他系统(文件、HTTP请求,JMS消息等等)的对象或资源之间做一些映射。

一个接入“通道适配器”端点连接一个源系统到一个消息通道

一个接出“通道适配器”端点连接一个消息通道到一个目标系统

参考:

1.官方文档

2.http://www.iteye.com/topic/744524

spring-gateway整合spring-Integration,链式处理请求体相关 同理serverlet。其实和使用controller是同一种效果,使用controller也是需要策略模式,对不同协议进行处理。代码中是再次创建了一个通道,spring-intergration本身就是为集成流的处理方案。物联网比较核心的就是处理上报,并处理不同协议的问题。一开始配置了一个通道,是http接受请求的通道,此时在通道内再次集成另一个通道.集成流 入站协议和出站协议都可以自行配置,处理的多了,就多几个handler.还有自定义xml,作为协议模板的这次写不完了,打包出bug, 一直在解决。 阅读详情

相关推荐

SpringBoot入门实战:SpringBoot整合Spring Integration

1.背景介绍 本文将以Spring Boot为基础框架,结合Spring Cloud微服务架构中的消息队列中间件RabbitMQ来实现在Java编程环境下快速创建、运行、测试和部署可伸缩的基于消息驱动的应用程序。其中包括: Spring Boot概述 Spring Boot项目搭建

AI天才研究院 441

Spring Integration超详细解读

它是一个功能强大的EIP (Enterprise Integration Patterns),即企业集成模式。它是Spring Messaging的扩展,提供了Spring编程模型的扩展,用来支持企业集成模式。它集成了众多功能,是一种便捷的用来在系统之间做消息传递的。Spring Integration的主要特征和功能如下:消息驱动架构:使用消息作为信息的载体,通过订阅和发布消息实现系统之间的通信和集成。使用通道与过滤器:通道负责传输消息,过滤器对消息进行操作与路由。

MengMengDeXiaoJi的博客 6533

光储微电网混合储能系统的控制策略

随着社会生产力的不断提高,对不可再生资源的大量消耗,人们已经意识到发展可再生能源的重要性,因此微电网技术作为再生能源利用的有效形式被快速发展。蓄电池容量无限大是传统光储微电网混合储能系统控制策略一种理想形式,但实际上蓄电池的容量是有限度的,传统控制策略在蓄电池剩余电量达到阖值时将无法正常使用,由此提出了光储微电网混合储能系统的新型控制策略,又结合实际情况,对开关进行了改进,利用开关与二极管并联,使其拥有四种工作状态,当储能元件剩余电量达到阈值时,可自动恢复电量降低成本,提高并输出电池电能质量。

nhkg888的博客 1751

spring-integration初探

最近有幸,公司让我研究了spring-integration,对于这个spring出品的功能强大的工具,功能繁多且复杂。写此博客分享一下心得,也为记录一下最近研究这么久的知识点。理解的不够深,如果有错误的地方,希望各位朋友能批评指出。 一、what 首先,什么是spring-integration?研究之初,对这根管道有些迷惑,这是队列?这个activeMQ有啥区别?待研...

Doubletree.lin的博客 6万+

绿联UGOS Pro系统虚拟机部署Windows 11详细教程(跳账户登录,安装内存驱动)

总的来说,此次的虚拟机部署Windows 11出现的问题应该是目前几乎所有虚拟机都可能出现的问题,和绿联是没有关系的。所以说如果你在其它NAS上虚拟机部署Windows 11系统如果出现同样的问题,那么今天教程的方案也同样适用于你。

qq_63499861的博客 1万+

免费测试国外大模型Claude 3.7 Sonnet API:无需api key(秘钥)

Claude 3.7 Sonnet是Anthropic公司推出的第三代Claude系列AI模型中的中规模版本(2024年发布),在性能与效率间实现平衡。该模型基于改进的Transformer架构,支持128K上下文窗口,擅长复杂推理、数学计算和创意写作,在GSM8K数学基准测试中准确率达92%。其采用"宪法AI"伦理框架,通过多轮对抗训练减少有害输出,同时新增多模态理解能力(可解析图片/图表内容)。Claude 3.7 Sonnet是Anthropic推出的高效轻量级大模型,主打快速响应与成本优化。

Explinks的博客 1499

Spring Integeration学习

Spring Integeration涉及的概念很多,最重要的有三点:Message、Channel、EndPoint 1、Message Message是Spring Integration最基本的概念之一。Message是对系统内各节点间交互内容封装的对象。可以把Spring Integration比作一系列的管道,那么Message就是管道中流动的水。 Message对象包含两部分

学习记录 9467

华为OD机试真题 新系统 2026-04-19 C语言 实现【8位LED控制器】

有一个8位LED控制器,包含8个LED灯(编号0-7),初始状态全灭,用8位二进制表示为:00000000。控制器可以接收以下三种指令: Lx:L表示点亮操作,x表示LED的编号(0一7),操作得到的结果是:点亮第x个LED灯,把状态设为1。 Dx:D表示熄灭操作,x表示LED的编号(0-7),操作得到的结果是:熄灭第x个LED灯,把状态设为0。 Tx:T表示切换操作,x表示LED的编号(0-7),操作得到的结果是:切换第x个LED灯的状态,若状态为0则变为1,为1则变为0。 现在给定一组指令字符串(0<

MISAYAONE的博客 149

springboot中使用spring integeration连接MQTT

订阅消息的工具类 import cn.ac.iie.securer.bean.properties.SubscriberConfiguration; import cn.ac.iie.securer.util.AESUtil; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.MqttConnectO...

stSahana的博客 1356

【AI大模型】角色设定:给模型定身份的高效使用方法

摘要: AI大模型角色设定(RolePrompting)是提示词工程的核心优化技巧,通过赋予模型特定职业、领域和风格约束,显著提升输出专业度与适配性。文章系统拆解了角色设定的原理、万能公式(领域+身份+技能+风格+场景)、三级分层写法(基础/进阶/专家),并提供10类高频场景的模板。通过无角色与有角色输出的对比实验(Python代码量化验证),证明角色设定可使模型综合得分提升35%以上,尤其优化场景适配度与风格统一性。该技巧作为高阶提示词(如CoT、Few-Shot)的前置模块,能以零成本实现AI输出的专业

unber的博客 50

一台NAS两个系统:飞牛nas上完美运行群晖DSM?(飞牛nas+群晖nas套娃安装实操)

想在飞牛NAS上体验群晖DSM系统?💡 本文详细记录了飞牛nas上部署群晖的完整过程,从镜像转换到系统安装,每一步都有详细说明 🖥️,让你在不增加硬件成本的情况下,轻松实现一套硬件、多种系统的灵活部署 ✅

XiaoqiangClub的博客 2390

spring integeration

spring integeration就类似一个水电系统,总闸,各层楼的控制,分流,聚合,过滤,沉淀,消毒,排污这里的每一个环节都类似一个系统服务,可能是jms,可能是redis,可能是MongoDB,可能是Tcp/UDP,可能是job,可能是我们系统服务的任何一个模块 那么Spring Integration扮演的角色就是将这些功能能够连接起来组成一个完整的服务系统,实现企业系统的集成的解决方案...

tt5753的专栏 288

Matplotlib之bar3d画3D柱状图

3D柱状图通常用于展示数据集中不同分类项的数据大小或数量。与普通的柱状图相比,3D柱状图更适合展示数据的三个维度 3D 柱状图 按行/列涂颜色 柱加阴影、描黑边 自定义座标轴名、刻度标签、范围

我走的每一步都算数 1123

rabbitMQ_integeration_spring(七)

参考了其他博主的资料,整理成完整的代码,直接拷贝就可以测试。 一、创建一个properties文件 mq.host=127.0.0.1 mq.username=root mq.password=root mq.port=5672 mq.vhost=testmq mq.vhost表示rabbitMQ虚拟主机,类似一台电脑里面划分了多个虚拟主机,每个虚拟主机都可以有交换器,队列,...

weixin_30731287的博客 154

图解电动汽车:电动汽车主要参数

动力性指标 汽车的动力性指标主要有最高车速、加速时间、最大爬坡等,体现了汽车在行驶过程中能达到的极限运动水平。对于电动汽车,其动力性由搭载的驱动电动机决定,主要的参数包括最大扭矩、额定功率、最大功率、最大转速等。 功率是指物体在单位时间内所做的功的多少,是描述做功快慢的物理量,单位是 kW。 扭矩是指机械元件转动的力矩,也称转矩,表示转动力量的大小,单位是 N·m。 转速是指发动机/电动机的转速,的单位是 rpm,即转每分钟。额定转速是指在额定功率下电动机的转速,最大转速则是在最大功率下电动机的转速。

程序员「阿基米东」的编程之旅 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Spring3 and REST Integeration(VII)Controller JUnit Test and Mock/Spring Test MVC

Spring3 and REST Integeration(VII)Controller JUnit Test and Mock/Spring Test MVC Spring Test MVC I found a spring mvc test framework in github.com, that is nice to have this open source project. ...

快马扬鞭须努力! 229

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spring集成入门

cxf集成spring入门 为什么要进行Spring整合 Spring Integration是Spring框架的创建者提供的API,专用于企业应用程序集成(EAI)。 在集成方面,不乏“解决方案”:硬编码的Java客户端,其他ESB和消息队列等更传统的应用程序集成技术。 Spring Integration有时会以惊人的方式对每种情况进行改进! Spring Integration非常轻巧...

cunfu6353的博客 609

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

我把Controller文件挪了一下,Spring当场“去世”了

一个风平浪静的下午,你只是优雅地将一个Controller类移动到更合理的包下,应用重启,接口瞬间404。更诡异的是,配置文件里的username,竟被你电脑的登录名悄悄替换。当你试图注入一个本该“每次都全新”的@Scope("prototype")对象时,却发现它顽固地保持着“单例”之身,宛如一个不死的幽灵。本文将带你扮演一回“事故终结者”,从组件扫描的“视线盲区”到`@Value`注入的“优先级陷阱”,再到`@Autowired`注入原型Bean的“永生”诅咒,层层剥茧,让你看清Spring“贴心保姆”

专注生产事故复盘。这里没有空洞理论,只有从P0级告警中打捞出的源码级真相和企业级填坑指南,带你从“踩坑”到“封神”。 672

Spring Boot整合Redis

0.启动Redis服务 官网不正式支持windows版本 这里是:windows版本下载地址 1.引入pom坐标 pom.xml <!-- lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </de

flyation的博客 205

apache camel_Spring集成– Apache Camel比较

apache camel v2.1发布一年后,Spring Integration v2.2 推出了3个新组件 MondoDB,Redis和JPA(即使前2个也在v2.1中列为消息存储,现在它们可以作为Inbound和出站通道适配器),重试和其他新功能。 作为比较,Apache Camel在同一时期还发布了 v2.10,其中包含约18个新组件 。 Camel的JPA支持已经很长时间了,从v2....

470

Spring 框架参考文档(六)-Integration之Remoting and web services using Spring

Spring 框架参考文档(五)-The Web之WebSocket 支持 Part VI. Integration This part of the reference documentation covers the Spring Framework’s integration with a number of Java EE (and re

xiangjai的专栏 1464

Spring Integration概述

1.   Spring Integration概述 1.1     背景 Spring框架的一个重要主题是控制反转。从广义上来说,Spring处理其上下文中管理的组件的职责。只要组件减轻了职责,它们同时也被简化了。例如,依赖注入降低了定位和创建组件间依赖的耦合性。同样地,面向方面编程通过模块化可重复利用方面,将业务组件和通用的横切面关注点解耦。在这样的情况下,最终的结果是系统更容易测试,理解,...

weixin_33908217的博客 116

springBoot实现分布式锁(Spring integration+redis)

springBoot实现分布式锁(Spring integration+redis) 一、 redis安装 使用docker-compose安装所需的redis环境 version: '3' services: redis: image: redis # redis镜像 container_name: my_redis command: redis-server --r...

github_35976996的博客 7126

Spring基础之简单实例演示

简单实例总体结构图如下: 新建一个接口,代码如下所示: 实现上述接口,如下图: 编写一个xml文件,如下图: 编写一个类进行测试,如下图: 测试结果如下图所示:

xautjzd小天地 626
上一篇: java 消息机制 ActiveMQ入门实例
下一篇: Spring Integration入门
github_zwl
博客等级 码龄11年 300粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值