当前位置: 首页 > 后端技术 > Java

给 SAP BTP 创建的 Java 应用添加 Custom Event Handler 支持创建功能

时间:2023-04-01 22:23:55 Java

为SAPBTP创建的Java应用程序添加CustomEventHandler以支持创建函数READ和CREATE事件。READ操作只是返回内存中保存的所有实体。CREATE事件从CQN表示中提取有效负载并将其存储在内存中。CDS查询符号(CQN)是CAP中用于针对服务运行查询的通用语言。它可用于与模型定义的服务以及远程服务(如数据库)进行通信。事件处理程序使用以下API,这些API可供CAPJava中的服务提供者使用:事件处理程序类必须实现标记接口、标记接口EventHandler,并将自己注册为SpringBeans(@Component)。标记接口很重要,因为它使CAPJava运行时能够识别所有SpringBean中的这些类。事件处理程序方法使用@Before、@On或@After注释进行注册。每个事件,例如实体创建,都会经历这三个阶段。每个阶段的语义略有不同。注释@ServiceName指定所有事件处理程序方法适用的默认服务名称。这里是AdminService,因为它也是在CDS模型中定义的服务的名称。事件处理程序方法采用特定于事件的事件上下文参数,该参数提供对事件输入参数的访问和设置结果的能力。例如,让我们看一下CdsCreateEventContext上下文参数。我们要扩展的事件是CREATE事件。上下文变量的类型特定于此扩展的CREATE事件。onCreate方法返回void因为结果是通过运行设置的:context.setResult(…)。使用命令行mvncleanspring-boot:run启动这个模板应用程序,然后使用curl命令在命令行中插入一个新的产品数据:curl-XPOSThttp://localhost:8080/odata/v4/AdminService/Products\-H"Content-Type:application/json"\-d'{"ID":42,"title":"MyTutorialProduct","descr":"你做得很棒!"}'插入成功:打开Java应用程序url:https://workspaces-ws-pdwk4-a...可以看到刚刚插入的产品: