GWT 异步生成,在某些情况下关闭?

GWT Async generation, turn off in some cases?

当使用 gwt-maven-plugin 的 generateAsync 时,是否可以将注释(或其他东西)应用于单个 gwt-rpc 服务,以便相应的异步不会自动生成并且可以手动写的?


或者,是否有注释(或其他东西)使生成的异步具有 "Request" return 类型?

GWT 生成器永远不会创建 class 如果已经存在同名的生成器。这意味着您可以要求 GWT 编译并生成代码,然后将 classes 复制到您的源代码中并自定义它们,以后的编译器运行将不会尝试生成源代码。

这可能会产生其他副作用 - 如果代理、typeserializer 或 fieldserializer 被阻止生成,那么 RPC 生成器可能会假设其他依赖项也都已正确生成,因此您可能会发现自己丢失了 classes 如果你不也复制其他 classes。同样,当然,任何需要修改或重建序列化程序的更改都必须手动完成,例如更改可序列化类型或修改 RPC 方法。


您的异步接口始终可以声明 return 类型的 RequestRequestBuilder 而不是 void。如果声明RequestBuilder,则请求不会自动发送,必须调用send(),而Request returned表示请求已发送。

根据 gwt-maven-plugin 的文档,您需要调整 servicePattern 配置 属性,或者您可以要求它始终生成返回 Request.[=12= 的方法]

或者,更好的是,不要使用这个目标!

(或仅偶尔手动调用一次并将生成的 类 复制到您的源)