gpt4 book ai didi

spring - 对于基于 Web 或基于移动的应用程序,是否值得使用 Spring Integration 而不是 Spring MVC?

转载 作者:行者123 更新时间:2023-12-04 23:56:14 26 4
gpt4 key购买 nike

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

进入细节。

在我的 Web 应用程序中,没有什么比逐步维护流程更简单的了,所有 CRUD 操作都很简单,目前我们正在使用 Spring MVC 这符合我们的要求,但对于基于移动的服务,我们提供 消息总线 支持在客户端和服务器之间交换捎带信息,我们有自定义代码来实现解决方案。

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

我们使用 解决了以上所有问题 Spring MVC 只要。

我的问题是

  • 值得使用 Spring 集成 用 Spring Integration 替换自定义代码解决方案以实现消息总线的框架,如果是这样,我的 Web 应用程序的流程是什么?
  • 如果我为我的 Web 应用程序使用 Spring Integration,它将如何将 HTTP 请求呈现给 SI?
  • Spring Integration 是任何基于 Web 的独立应用程序的正确选择吗?
  • 最佳答案

    Spring Integration 以企业集成模式为模型,最好将其视为支持消息驱动架构。 Spring MVC 的历史和起源是为类似于 Struts 的 MVC 模式提供解决方案,主要以线性方式公开由服务支持的模型和控制 View 。 Spring MVC 的核心之一是允许动态填充将由 JSP 页面( View )访问的模型。所有这些都是面向 Web 应用程序并结束它们的。

    随着服务(Web、RESTful)的发展,Spring MVC 填补了空白并不断扩展以支持对服务的 HTTP 访问,尽管这是其职责的扩展,而不是最初的起源。同时,Spring Integration 的设计目的是处理消息和与服务的消息交互,独立于访问它的协议(protocol)。为了启用不同的协议(protocol),可以使用不同的端点来公开相同的服务。例如,我可以将我的 crud 服务构建在 POJO 中,通过 Service Activator 公开,现在可用于许多不同的协议(protocol),包括通过 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 的入站网关属性)

    关于spring - 对于基于 Web 或基于移动的应用程序,是否值得使用 Spring Integration 而不是 Spring MVC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16016935/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com