原创翻译,版权所有 © YuMG
Spring Integration 对 Spring 编程模型进行了扩展,使得后者能够支持著名的“企业集成模式”。通过SI(Spring Integration)可以在基于Spring的应用中引入轻量级的“消息驱动模式”,并且支持“通过声明式的适配器”与外部系统进行集成。这些“适配器”相较于Spring对于“remoting(远程调用)”、“messaging(事件消息)”、“scheduling(任务调度)”方面的支持,提供了更高层次的一种抽象。SI的首要目标是:为“构建企业集成方案、维护系统间通信”提供一种简单模型,应用该模型所产出的代码是可维护、可测试的。
2. Spring Integration 概览
2.1 背景
IoC——“控制反转”,是Spring Framework的一个关键特性。这种IoC,从广义上来说,意味着Spring Framework将负责代表被其上下文所管理的各种组件,而组件本身却由于被减轻了部分职责而简单化了。例如:“依赖注入”使得组件摆脱了定位与创建自身依赖的职责。再比如:“面向切面编程”则通过可复用切面的透明织入,使得业务与横切交叉点解耦,使得业务组件避免了被普遍的耦合横切,做到了更好的模块化。在上述各种情况下,最终结果都是:系统更容易被测试、理解、维护和扩展。
此外,Spring Framework及相关工具包为构建企业应用提供了一个无所不包的编程模型。开发者受益于这个模型的一致性。尤其是该模型以公认的最佳实践为基础,使得开发者受益匪浅,比如“面向接口编程”,“尽量使用聚合而不是继承”等等。来自Spring的简化抽象与强大类库,不仅增强了系统的可测试性和可移植性,同时也大大提高了开发者的生产力。
Spring Integration秉承了与前文所述相同的目标和原则。它将Spring的编程模型拓展到了消息领域,在Spring现有的企业集成支持基础上构建了更高次的抽象。在它所支持的消息驱动架构中,“控制反转”被应用于运行期的关键连接处,例如:在何时特定的业务逻辑应该执行,以及响应结果应该被发送到何处。它提供了消息路由和消息转换方面的支持,所以不同的传输协议和不同的数据格式都能在不影响易测试性的前提下被集成。换句话说,消息和集成点都被框架所处理,所以业务组件能很好地与基础设施隔离,从而使得开发者能够从复杂的集成工作中解脱出来。
作为Spring编程模型的扩展,Spring Integration提供了多种配置方式可供选择,包括注解、基于命名空间的XML、通用Bean元素的XML,当然也可以直接使用底层API。底层的API都均是基于“精心定义的策略接口”与“保证了非侵入性的代理适配器”。Spring Integration的设计启发于“Spring中的普遍模式”与“企业集成模式”间强烈的共鸣。“企业集成模式”是由Gregor Hohpe和Bobby Woolf在《企业集成模式》一书中提出的,该书由Addison Wesley出版社于2004年出版。读过此书的开发者应该能更快地适应Spring Integration的概念和术语。
2.2 目标与原则
Spring Integration 面向如下目标: