【问题标题】:To wrap back-end system clients or not in Spring在 Spring 中包装或不包装后端系统客户端
【发布时间】:2016-05-19 18:08:26
【问题描述】:

我有一个带有 Spring 的应用程序,我需要调用许多不同类型的后端系统(传统大型机、ESB、RESTful...)。如果我们采取例如REST,我可以实现一个 RESTful 客户端,例如休息模板。我可以 A) 让开发人员直接使用 RestTemplate 客户端,他们将服务 url 和数据对象传递给该客户端。或者我可以 B) 将 RestTemplate 包装在我们自己的后端特定客户端中,并提供开发人员可以使用的显式方法。然后,这些方法本身当然会使用 RestTemplate 并进行显式后端调用。

A) 的好处是后端系统的更改不需要更改客户端。缺点是我们不隐藏架构。 B) 对开发人员来说更清晰,更容易“管理”,但后端系统的更改需要我们更新所有想要使用新后端功能的应用程序。更糟糕的是,后端系统功能的更改可能需要更新所有服务。

不过,我个人还是倾向于选项 B),因为它为开发人员提供了业务逻辑和架构服务的良好分离。

【问题讨论】:

  • B 是更好的选择,并且能够在后端发生更改时轻松进行更改,您可以使用属性文件或 xml 使其可配置

标签: spring resttemplate


【解决方案1】:

我不明白您是如何得出这样的结论,即如果客户想要使用新功能或 API 因更改而中断,则他们不需要更新(选项 A)。
我认为B选项更好。但我会使用 HTTP 客户端 Feign 创建请求模板,然后发布接口。这样,您甚至不必包装 RestTemplate 并手动实现每个请求。

【讨论】:

  • 谢谢,我也需要看看 Feign。看起来很有趣。
猜你喜欢
  • 2019-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-05
  • 2019-04-29
  • 2019-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多