Ril*_*ark 6 gwt requestfactory
我的GWT应用程序有十种不同的实体.现在我使用普通的旧DTO并通过GWT-RPC传输它们.这适用于启动等情况 - 我可以将它们全部打包到一个请求中.
我正在寻找切换到RequestFactory,因为在我需要更新一种类型的实体时,应用程序的整个生命周期中有很多次(平均30分钟),并且RequestFactory的统一/带宽保存功能很吸引人.但是:我没有看到在应用加载时在单个请求中下载所有初始化数据的方法.我不想要为我的十种实体类型提取十个请求来获取所有init数据.
有没有办法制作GeneralRequestContext,还是什么?我甚至对以下解决方案感到满意:
public interface InitDataProxy extends EntityProxy
{
public UserProxy getInitUsers();
public OrganizationProxy getInitOrganizations();
...
}
public interface GeneralRequestContext extends RequestContext
{
Request<InitDataProxy> getInitData();
}
Run Code Online (Sandbox Code Playgroud)
但是这不起作用,因为我不想用任何东西实际支持InitDataProxy,我只想用它在一个请求中组合一堆不同类型的代理.
那么:有没有办法EntityProxy在单个请求中接收多个不相关的类型?
我也很乐意为这个数据制作一个普通的gwt-rpc请求到RequestFactory之外,但是我不想在RequestFactory的代理旁边实现重复的DTO,并编写自定义代码来将DTO复制到他们!
相反,可以InitDataProxy扩展ValueProxy,这不要求服务器上的对象具有任何类型的 id 或版本语义。域端InitData类型可以是一个接口,可能用匿名类型实现。
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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1089 次 |
| 最近记录: |