- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个新项目,我在其中使用 GWT-Views,例如 Composite 等。
我已使用 GinInjector 将项目注入(inject)主菜单(如下面的 ProductList
)。这很好用!
我想在某个地方从一个小组件引用我的主菜单中的一个项目,以便更新它。我尝试以这种方式注入(inject)它:
public class ProductForm extends Composite {
...
@Inject
ProductList list;
....
}
但是当我使用 list
时,我总是得到 null
。其中,ProductList
是这样定义的:
public class MyModule extends AbstractGinModule {
...
@Override
protected void configure() {
bind(ProductList.class).asEagerSingleton();
bind(ProductForm.class).asEagerSingleton();
}
...
}
知道我做错了什么吗?!
解决方案:我没有提到 ProductForm 是使用 UIBinder 的 @UIField 标记的 ProductList 的一个元素,因此注入(inject)它会创建一个新对象,而不是使用 UIBinder 创建的对象。
我不得不重组我的代码以包括演示者和事件总线,这样就不需要 View 之间的直接引用(@UIField 属性除外)。
最佳答案
我正在研究 Gin 文档:我将在此处引用它:
Gin “魔法”Gin 试图让注入(inject)变得无痛,并尽可能多地从您的代码中删除样板文件。为此,生成的代码在幕后包含了一些魔法,这在此处进行了解释。
延迟绑定(bind)Gin 优化代码的一种方法是通过自动化 GWT 延迟绑定(bind)。因此,如果您注入(inject)通过延迟绑定(bind)(而不是通过 Guice/Gin 绑定(bind))绑定(bind)的接口(interface)或 class1,Gin 将在内部调用 GWT.create 并注入(inject)结果。一个示例是 GWT 消息和常量(用于国际化目的):
public interface MyConstants extends Constants {
String myWords();
}
public class MyWidget {
@Inject
public MyWidget(MyConstants myconstants) {
// The injected constants object will be fully initialized -
// GWT.create has been called on it and no further work is necessary.
}
}
注意:Gin 不会在单例范围内绑定(bind)通过 GWT.create 创建的实例。不过,这不应造成不必要的开销,因为延迟绑定(bind)生成器通常会在其生成的代码中实现单例模式。
您可以在此 URL 中亲自查看:http://code.google.com/p/google-gin/wiki/GinTutorial
它没有提到为什么单例不能通过延迟绑定(bind)自动生成和注入(inject)。
您可以通过在构造函数中使用 GWT.create(YourFactoryInterface.class).getProductList()
手动创建来解决此问题。
这意味着为了测试目的,您需要将 GWT.create 拉入一个单独的方法并在子类中覆盖它并将其用于测试,例如:
YourFactoryInterface getFactory() {
return GWT.create(YourFactoryInterface.class)
}
和
getFactory().getProductList()
关于gwt - 依赖注入(inject)在 gwt 2.1 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191772/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!