热门排行
简介
Spring框架的一个重要主题是控制反转。从广义上来说,Spring处理其上下文中管理的组件的职责。只要组件减轻了职责,它们同时也被简化了。例如,依赖注入降低了定位和创建组件间依赖的耦合性。同样地,面向方面编程通过模块化可重复利用方面,将业务组件和通用的横切面关注点解耦。在这样的情况下,最终的结果是系统更容易测试,理解,维护和扩展。
此外,Spring框架和相关工具集提供一个优秀的构建企业级应用的编程模型。这个模型的一致性对开发者非常有益,特别是其基于公认的最佳实践,比如基于接口的编程,尽量使用聚合而不是继承。Spring简化的抽象和功能强大的类库,在增加了系统可测试性和可移植性的同事,有力地促进了开发者的生产力。
Spring Integration是Spring项目中秉承其相同目标和原则的新成员。它扩展了Spring的编程模型到消息领域,在Spring已经存在的企业集成支持的基础上,提供了更高级别的抽象。它将控制反转添加到关注点,支持消息驱动架构,例如当特定业务逻辑应该执行时,响应也应该被发送。它支持路由和消息转换,所以不同的传输协议和不同的数据格式能在不影响易测试性的前提下被集成。换句话说,消息和集成关注点都被框架处理,所以业务组件能更好地与基础设施隔离,从而降低开发者所要面对的复杂的集成职责。
作为Spring编程模型的扩展,Spring Integration提供了各种的配置选项,包括注解,支持命名空间的XML,通用bean元素的XML,当然也包括直接使用底层API。这些API基于定义好的策略接口和非侵略性的代理适配器。Spring Integration的设计是受在Spring中的通用模式和知名的企业集成模式中的密切联系启发的。企业集成模式是2004年Gregor Hohpe 和Bobby Woolf在Addison Wesley出版社出版的《企业集成模式》一书中描述的。读过这本书的开发者应该能直接地适应Spring Integration的概念和术语。
目标和原则
Spring Integration主要有如下两个目标:
- 提供一个简单的模型来实现复杂的企业集成解决方案
- 为基于Spring的应用添加异步的、消息驱动的行为
- 让Spring用户可以直观的、增量的采用
Spring Integration基于两个原则:
- 组件应该松耦合,方便模型化和易测试
- 框架应该强制业务逻辑和集成逻辑的关注点分离
- 扩展点本质上应该是抽象的,而且限定在一个清晰的边界内,来促进可重用性和可移植性。