0

我碰巧必须使用 light 4j 。我在 light 4j 的整个源代码库中找不到简单 CRUD 服务的简单示例。

所有这些示例都只是在其处理程序中返回虚拟响应。

他们都没有真正注入服务并执行任何逻辑。

Q1) 是否有人知道 light 4j 的任何文档或示例源代码在 CRUD 操作方面是完整的,包括如何注入具有多种实现的服务?PS:那里的文档只显示了如何获得一个服务的所有实现,而不是一个单一的实现。

Q2)实际问题:如何将一个非常简单的 JSON 请求正文转换为 JAVA POJO 对象。

我发现的所有可能性中最糟糕的是这个。

Map<String, Object> bodyMap = (Map<String, Object>) exchange
                .getAttachment(BodyHandler.REQUEST_BODY);
        AccontRegisterRequest request = new AccontRegisterRequest();
        request.setDob(LocalDate.parse((String) bodyMap.get("dob")));
        request.setName((String) bodyMap.get("name"));
        request.setInitialDeposite(
                Float.parseFloat((String) bodyMap.get("initialDeposite")));

请求有效载荷

{
   "name" : "Some Name",
   "dob"   : "1999-02-02",
   "initialAmount" : 10000
 }

请不要推荐像这样在这个 JSON 中添加密钥:

{
   "somekey like body" : {
        ... and here goes by previous json
     }
}

因为这个 BodyHandler 不必要地读取输入流并将其转换为linkedHasMap。

所以我不能简单地在我的逻辑中读取请求输入流并将其传递给 JACKSON 映射器来创建我的 POJO。

请帮我摆脱这个。

4

1 回答 1

0

抱歉,我在之前的扫描中没有发现这个问题。

您可以使用 Jackson 将地图转换为 POJO,而且速度非常快,因为无需解析 JSON。

在 light-oauth2 中看一下这个例子

https://github.com/networknt/light-oauth2/blob/master/client/src/main/java/com/networknt/oauth/client/handler/Oauth2ClientPostHandler.java#L44

于 2020-08-20T11:44:29.360 回答