Java GWT依赖注入

时间:2014-09-24 10:43:00

标签: java gwt dependency-injection gwtp

我们现在在我们的项目中有一个类,它在应用程序启动时启动的唯一方法中有1000行bindPresenter(...)。我担心性能:这样的注射可以减缓应用吗?我是对的,它不是懒惰注入,并且所有呈现者在应用程序开始时都创建了所有依赖项?

我们使用了探查器,看起来注射开始真的很慢,但我们不确定。

谢谢!

1 个答案:

答案 0 :(得分:3)

我怀疑你的1000 bind语句会减慢你的应用程序的加载时间。来自GWTP's Presenter docs

  

每个演示者都与一个负责收听的代理相关联     此演示者感兴趣的各种活动。这使得懒惰实例化成为可能     演示者并使用GWT代码分割。

由于Presenter是懒惰实例化的,你的慢启动可能是由其他东西造成的。

可能会减慢加载时间的一件事是,如果你进行大量的PresenterWidget注射,而不使用Gin的Provider s:

@Inject
ParentPresenter(
  SomePresenterWidget a, 
  SomePresenterWidget b) {
  // ...
}

像这样注入许多PresenterWidget需要预先构建PresenterWidget,这可能会导致加载速度减慢。您可以使用Provider来延迟加载PresenterWidget s:

@Inject
ParentPresenter(
  Provider<SomePresenterWidget> a, 
  Provider<SomePresenterWidget> b) {
  // ...
}

并且仅在需要时使用PresenterWidget实例化provider.get()