GWT 中的 provider 和 AsyncProvider 之间有什么区别。我的理解是,两者都用于代码拆分和延迟实例化。
所以我无法决定,在哪种情况下我们选择 Provider 而不是 AsyncProvider ?
提前致谢!
最佳答案
Provider
是关于:
Lazy
类型。 get()
都会给你一个新对象 Provider
,否则您将被注入(inject)一个对象来自当前请求范围,它将无法用于下一个请求。 GIN 仅支持 Singleton
范围操作系统,它在这里并不真正适用,因为它只是上述工厂用例的变体;但在服务器端(使用 Guice、Spring DI、Dagger 等),servlet 或 RequestFactory 服务/定位器是单例(或 RF 的伪单例),这是 DI 框架的关键部分。 AsyncProvider
与 相同,除了 它是异步的,包装了对 GWT.runAsync()
的调用。换句话说:只有
AsyncProvider
真正与代码拆分有关。 Provider
将对代码拆分输出产生影响,但与任何工厂(手工编码或 GIN 的 AssistedInject)没有区别。关于GWT:提供者与异步提供者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15631056/