GWT中提供程序和AsyncProvider之间的区别是什么。我的理解是两者都用于代码分割和延迟实例化。 所以我无法决定,在哪种情况下我们选择Provider而不是AsyncProvider?
提前致谢!
答案 0 :(得分:6)
Provider
是关于:
Lazy
类型。get()
都会给你一个新对象Provider
,否则你将从当前请求范围注入一个对象,该对象将无法用于下一个请求。 GIN仅支持Singleton
范围,它不会真正在此处应用,因为它只是上述工厂用例的变体;但是在服务器端(使用Guice,Spring DI,Dagger等),servlet或RequestFactory服务/定位器是单例(或RF的伪单例),这是DI框架的关键部分。 AsyncProvider
与相同它是异步的,包含对GWT.runAsync()
的调用。
换句话说:只有AsyncProvider
才真正与代码分割有关。 Provider
会对代码拆分输出产生影响,但与任何工厂(手工编码或GIN的AssistedInject)没有区别。