GWT:Provider vs AsyncProvider

bha*_*ava 3 gwt gwt-gin gwtp

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

提前致谢!

Tho*_*yer 6

Provider 是关于:

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

AsyncProvider是相同的,除了它是异步的,包含一个调用GWT.runAsync().

换句话说:只是AsyncProvider真正关于代码拆分.Provider会对代码分割输出产生影响,但与任何工厂(手工编码或GIN的AssistedInject)没有区别.