我们正在做ZI_HDR_SALES、ZC_HDR_SALES、Draft、Behavior Definition 和 Service Binding 时,前端发出的一个PATCH请求,看起来很像 Spring MVC 里的请求进入DispatcherServlet,再被转交给某个 Controller。问题也就很自然,ABAP 里是不是也藏着一个同样的中央分发器。
结论可以直接给出,ABAP 语言本身没有 Java Spring MVC 那种名为DispatcherServlet、由应用显式配置并承担完整前端控制器职责的标准对象。不过,在 ABAP 应用服务器的不同技术栈里,确实存在承担相似职责的运行时组件。经典自定义 HTTP 服务里,最接近的是ICF加IF_HTTP_EXTENSION处理类。传统 SAP Gateway OData 服务里,最接近的是 ICF OData Handler 加 Gateway Runtime。现代 ABAP Cloud 和 RAP 应用里,最接近的是 HTTP Service Runtime、OData Runtime 与 RAP Runtime Engine 的组合。它们不是一个类的简单替身,而是一组由平台拆开的分发层。(