【问题标题】:Is it worth to use Spring Integration instead of Spring MVC for web-based or mobile based application?对于基于 Web 或基于移动的应用程序,是否值得使用 Spring Integration 而不是 Spring MVC?
【发布时间】:2013-04-07 16:06:16
【问题描述】:

我正在开发网络应用程序,在我的产品中,我们还提供金融非金融移动服务。

详细介绍。

在我的 Web 应用程序中,没有什么比逐步维护流程、简单的所有 CRUD 操作更简单的了比如消息总线支持在客户端和服务器之间交换捎带信息,我们有自定义代码来实现解决方案。

此外,我们基于移动的服务需要通过不同的协议(如 SOAP、REST)公开,同时需要将通信数据包与服务分离。

我们仅使用 SPRING MVC 解决了上述所有问题。

我的问题是

  1. 是否值得使用 Spring Integration 框架来替换自定义代码解决方案以使用 Spring Integration 实现消息总线,如果是,我的 Web 应用程序的流程是什么?
  2. 如果我将 Spring Integration 用于我的 Web 应用程序,它将如何将 HTTP 请求呈现给 SI?
  3. Spring Integration 是任何基于 Web 的独立应用程序的正确选择吗?

【问题讨论】:

    标签: spring spring-mvc spring-integration


    【解决方案1】:

    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、文件、数据库等)

    要在 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)

    【讨论】:

      猜你喜欢
      • 2020-01-30
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多