![](/img/trans.png)
[英]Spring Boot - Global Custom Exception Handling Mechanism using RestControllerAdvice
[英]Workflow mechanism for exception and error handling scenarios in Spring Boot or Spring
我正在设计要求如下的设计
例如,假设有一个Java方法,其中有多个外部组件调用,例如1个soap调用和2个rest调用,即
String doOrchestration(InputObject obj){
Line 1: Object obj = soap call[ input is XML format];
Line 2: Object obj1 = rest1 call [the input is obj in JSON format]
Line 3: Object obj3 = rest2 call[the input is obj1 in JOSN format]
//do something
return str
}
该错误发生在第2行。我们需要捕获/保留状态,并在以后继续从第2行执行。
是否有任何我们可以与spring / Spring-boot集成的工作流程库,业务流程模式和/或框架
谢谢,
好吧,我用来解决这类问题的技术是阿帕奇骆驼,您可以设置骆驼,例如,在您的需求中,您可以构建主要的路线,该路线将编排其他路线,例如您的端点,如果一个端点具有您可以呼叫将保留该路由的路由,然后再次呼叫端点的路由,或者类似的例外。
http://camel.apache.org/getting-started.html
编辑:骆驼有很多潜在的转换消息,例如json,xml,对象。
如果您要检查它,我在github上有一个非常简单的项目,它带有spring boot和camel。
https://github.com/chill-hub/spring_boot_camel_base_archetype
Apache Camel版本的spring就像是https://spring.io/projects/spring-integration上的 spring-integration
Apache Camel和Spring Integration实现了称为EIP的企业集成模式。 请先查看https://www.enterpriseintegrationpatterns.com/ 。 它基本上是工作流程和业务流程的设计模式!
您有一个名为spring-boot-starter-integration的与spring boot集成的spring引导程序。
您可能应该在https://github.com/spring-projects/spring-integration-java-dsl/wiki/spring-integration-java-dsl-reference上查看Java Spring Config dsl参考,它将为您提供一个很好的概述,使用更现代的方法(xml和注解开始消失)。
对于您需要做的事情,您可能需要https://docs.spring.io/spring-integration/reference/html/ws.html ,这是Spring集成的Web扩展。
请注意,这是一个非常优雅的解决方案,但具有很多抽象性,一开始可能会很困难。 请记住,EIP定义了构建模块和用于构建工作流的词汇,Apache Camel和Spring Integration是实现这些构建模块并提供线程模型抽象(也包括队列持久性抽象)的框架,并且两者都有一些扩展,可以轻松地将这些构建模块适应于实词(网络,ldap,数据库等)
两种框架都各有利弊,但您可能更喜欢在Spring生态系统团队中进行Spring集成,而与其他Spring模块一样,使用相同的约定!
同样,这些框架确实非常优雅,但是抽象总是要付出代价的!
免责声明:我是春季整合课程的培训师-官方
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.