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) 中在我的数据库中进行的插入/更新您会使用哪个technology
、framework
、tool
或其他?过去我使用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项目? [复制]