Spring Boot:如何将工作流实现为集成外部应用程序的同步 REST 服务

Posted

技术标签:

【中文标题】Spring Boot:如何将工作流实现为集成外部应用程序的同步 REST 服务【英文标题】:Spring Boot: how to implement workflow as synchronous REST services integrating external applications 【发布时间】:2021-12-15 02:51:31 【问题描述】:

我来这里是想请你就使用哪种技术在基于 Spring Boot 的现有应用程序上添加新功能提出建议。

新功能包含一些工作流,公开为同步 REST 服务,它们必须更新数据库并调用外部应用程序公开的 REST 服务,从而更新自己的数据库。

例如,一个服务可以实现这个工作流:

    在数据库中插入行 调用应用程序 X 的 REST 服务,这将更新其数据库 更新数据库中的行 调用应用程序 Y 的 REST 服务,这将更新其数据库 更新数据库中的行

此工作流程必须是同步的,并且由人工操作员启动,该操作员将在几秒钟内收到结果。 例如,如果步骤 4) 失败,我需要:

进行补偿,调用应用程序 X 的另一个 REST 服务,以撤消它在第 2 步中所做的操作) 回滚在步骤 1) 和 3) 中在我的数据库中进行的插入/更新

您会使用哪个technologyframeworktool 或其他?过去我使用Oracle SOA 实现了类似的场景,但在这种情况下,我会避免在我的应用程序中引入基于Spring Boot 的新基础架构。

谢谢

【问题讨论】:

【参考方案1】:

我猜你需要了解更多关于Spring Framework 和Spring Boot 的知识。

1.insert rows in database : Spring Data JPA

2.call the REST service of the application X, which will update its database : Http Client 例如 RestTemplate 或 WebClient

3.update rows in database:Spring Data JPA(再次)

4.call the REST service of the application Y, which will update its database update rows in database : RestTemplate...

某某某某……

如果你想做一个真正的工作流,你可以使用Activiti。

【讨论】:

以上是关于Spring Boot:如何将工作流实现为集成外部应用程序的同步 REST 服务的主要内容,如果未能解决你的问题,请参考以下文章

Security安全认证 | Spring Boot如何集成Security实现安全认证

如何将外部jar文件传递给spring boot项目? [复制]

如何从 Spring Boot 应用程序调用外部 JWT API 服务 [关闭]

Spring Boot集成Redis实现缓存

Spring Boot集成Redis实现缓存

如何将 Docker 内部的 Spring Boot 应用程序连接到 PostgreSQL 外部