3

GWT 中的 provider 和 AsyncProvider 有什么区别。我的理解是两者都用于代码拆分和延迟实例化。所以我无法决定,在这种情况下我们选择 Provider 而不是 AsyncProvider ?

提前致谢!

4

1 回答 1

6

Provider是关于:

  • 延迟实例化(但实例化是瞬时的、同步的);仅供参考,DaggerLazy为这个用例引入了一种类型。
  • 对象工厂:除非对象是作用域的,否则get()每次调用都会给你一个新对象
  • 在长寿命范围内使用短寿命范围对象:如果您需要从单例范围(或会话范围)对象访问请求范围对象,则必须使用 a Provider,否则您将从当前请求范围,将无法用于下一个请求。GIN 仅支持它在这里Singleton并不真正适用的范围操作系统,因为它只是上述工厂用例的变体;但在服务器端(使用 Guice、Spring DI、Dagger 等),servlet 或 RequestFactory 服务/定位器是单例(或 RF 的伪单例),这是 DI 框架的关键部分。

AsyncProvider是相同的,只是它是异步的,包装了对GWT.runAsync().

换句话说:onlyAsyncProvider真的是关于代码拆分。Provider将对代码拆分输出产生影响,但与任何工厂(手工编码,或 GIN 的 AssistedInject)没有什么不同。

于 2013-03-26T09:48:27.180 回答