【发布时间】:2012-01-04 18:52:23
【问题描述】:
有没有办法在通过 ui 绑定创建的小部件中使用依赖注入?
假设我有一个简单的小部件(在包 com.example.client.ui.widget 中):
public class Foo extends Composite {
private final EventBus eventBus;
@Inject
public Foo(final EventBus eventBus) {
this.eventBus = eventBus;
// create ui
}
}
然后我有一个通过使用此小部件的 ui 绑定定义的视图。例如:
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:app='urn:import:com.example.client.ui.widget'>
<g:HorizontalPanel>
<app:Foo/>
</g:HorizontalPanel>
</ui:UiBinder>
这样做是行不通的,因为 ui 绑定中使用的小部件的无参数构造函数约束。但是,如果 GWT 编译器在有 @Inject 注释的情况下只使用 GIN,那不是很好吗?或者这可以通过任何其他方式完成吗?也许我完全错过了 GIN 和 GWT 的概念,如果是这样,任何提示都非常感谢。
提前致谢, 马库斯
【问题讨论】:
-
很明显,通过 ui-binding 声明的视图本身绑定在 gin 配置中。