我需要按顺序使用一些REST服务,并将它们解析为Java对象,然后将这些Java对象持久化到DB中。
我已经编写了一个web客户端,它发送了请求,解析了响应,并以RootNodeObject格式返回响应。
public clas RootNodeObject {
private Auth;
private DeviceDetails;
private HostDetails;
}当我发送webclient.get("/Auth")时,它返回RootNodeObject,其中包含填充的Auth对象。当我发送webclient.get("/deviceDetails")时,它返回RootNodeObject,其中包含填充的DeviceDetails对象。
以类似的方式,我必须发送8-10个请求来获取所有需要的数据。
之后,我编写了一个映射器类,它将Auth和DeviceDetails对象转换为Hibernate实体类,并将其持久化到DB中。
对于上面的代码,这看起来非常严格的design.Any设计模式,或者我可以使用的更好的设计?
发布于 2017-07-16 14:25:19
ReactiveX正是您所需要的。下面是来自他们网站的文本。它们还在各种programming languages中实现
您可以使用merge operator将不同观察值的结果合并为一个结果。您可以找到一个示例here
ReactiveX是一个通过>使用可观察的序列来编写异步和基于事件的程序的库。
它扩展了观察者模式以支持数据和/或事件序列,并添加了允许以声明方式将序列组合在一起的运算符,同时抽象了对低级线程、同步、线程安全、并发数据结构和非阻塞I/O等问题的关注。
为什么使用可观察对象?
ReactiveX可观察模型允许您使用与用于数据项集合(如数组)相同的简单、可组合的操作来处理异步事件流。它将您从错综复杂的回调网络中解放出来,从而使您的代码更具可读性,更不容易出现错误。
https://stackoverflow.com/questions/45125565
复制相似问题