gpt4 book ai didi

GWT RequestFactory 和多种类型

转载 作者:行者123 更新时间:2023-12-04 15:27:01 25 4
gpt4 key购买 nike

我的 GWT 应用程序有十种不同的实体。现在我使用普通的旧 DTO 并通过 GWT-RPC 传输它们。这适用于像启动这样的情况——我可以将它们全部打包到一个请求中。

我正在考虑切换到 RequestFactory,因为在应用程序的整个生命周期中(平均 30 分钟)有很多次我只需要更新一种类型的实体,并且 RequestFactory 的统一/节省带宽的功能很有吸引力。但是:当应用程序加载时,我看不到在单个请求中下载所有初始化数据的方法。我不想发出十个请求来获取我的十个实体类型的所有初始化数据。

有没有办法制作一个GeneralRequestContext,或者什么?我什至会对这样的解决方案感到满意:

public interface InitDataProxy extends EntityProxy
{
public UserProxy getInitUsers();
public OrganizationProxy getInitOrganizations();
...
}

public interface GeneralRequestContext extends RequestContext
{
Request<InitDataProxy> getInitData();
}

但这不起作用,因为我不想用任何东西实际支持 InitDataProxy,我只想用它在一个请求中组合一堆不同类型的代理。

所以:有没有办法接收多个不相关类型的EntityProxy在一个请求中?

我也很乐意为这些数据发出一个正常的 gwt-rpc 请求以在 RequestFactory 之外运行,但我不想实现重复的 DTO 以在 RequestFactory 的代理旁边运行,并编写自定义代码将 DTO 复制到他们!

最佳答案

InitDataProxy可以延长 ValueProxy相反,它不需要服务器上的对象具有任何类型的 id 或版本语义。域端InitData type 可以是一个接口(interface),可能用匿名类型实现。

interface InitData {
User getUser();
Organization getOrgatization();
}
class InitService {
static InitData makeInitData() {
return new InitData() { ..... };
}
}

@ProxyFor(InitData.class)
interface InitDataProxy extends ValueProxy {
UserProxy getUser();
OrganizationProxy getOrganization();
}
@Service(InitService.class)
interface Init extends RequestContext {
Request<InitDataProxy> makeInitData();
}

关于GWT RequestFactory 和多种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com