gpt4 book ai didi

GWT:提供者与异步提供者

转载 作者:行者123 更新时间:2023-12-04 21:45:35 25 4
gpt4 key购买 nike

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

提前致谢!

最佳答案

Provider 是关于:

  • 延迟实例化(但实例化是瞬时的,同步的);仅供引用,Dagger为这个用例引入了 Lazy 类型。
  • 对象工厂:除非对象有范围,否则每次调用 get() 都会给你一个新对象
  • 在生命周期较长的范围内使用生命周期较短的范围对象:如果您需要从单例范围(或 session 范围)的对象访问请求范围的对象,则必须使用 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/

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