Spring Integration 以企业集成模式为模型,最好将其视为支持消息驱动架构。Spring MVC 的历史和起源是为类似于 Struts 的 MVC 模式提供解决方案,主要以线性方式公开由服务支持的模型和控制视图。Spring MVC 的核心之一是允许动态填充将由 JSP 页面(视图)访问的模型。所有这些都是面向 Web 应用程序并结束它们的。
随着服务(Web、RESTful)的发展,Spring MVC 填补了空白并不断扩展以支持对服务的 HTTP 访问,尽管这是其职责的扩展,而不是最初的起源。同时,Spring Integration 的设计目的是处理消息和与服务的消息交互,独立于访问它的协议。为了启用不同的协议,可以使用不同的端点来公开相同的服务。例如,我可以将我的 crud 服务构建在 POJO 中,通过 Service Activator 公开,现在可用于许多不同的协议,包括通过 HTTP、WebServices、Twitter、XMPP 聊天服务、RMI、TCP 等的 REST。
简而言之,Spring MVC == HTTP 访问,Spring Integration == 消息访问(来自 HTTP、File、DB 等)
要在 Spring Integration 中通过 HTTP 公开服务,请使用 HTTP 端点。通常在请求/响应(比如从数据库中读取)中,您会想要使用<int-http:inbound-gateway/>
它,它看起来像这样;
<int-http:inbound-gateway request-channel="request.channel" reply-channel="reply.channel"
path="/myService" supported-methods="GET"/>
<int:channel id="request.channel"/>
<int:service-activator input-channel="request.channel" ref="myService"/>
<int:channel id="output.channel"/>
(要记住的关键点是以下...
<bean class="org.springframework.integration.http.inbound.UriPathHandlerMapping"/>
这有助于path
将入站网关的属性映射到 servletdispatcher)