问题标签 [gwt-gin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 动态添加绑定到 GIN 模块
我可以动态添加绑定到 GIN 模块吗?
例如,拥有一个模块“ExampleModule”并在其上调用静态方法,例如:
和 GIN 自动绑定?
或者也许使用注释?
提前致谢。
gwt - 吉斯/杜松子酒。如何注入多个实现
我有一个使用 GIN 在入口点注入依赖项的 web 应用程序。
我需要一个使用不同 RootView 实现的移动版本。依赖关系在以下模块中描述
问题是如何有条件地选择需要的依赖项,无论我们需要移动版本还是默认版本。我见过GWT-GIN Multiple Implementations,但还没有找到解决方案,因为 Provider 破坏了依赖关系的链,而 Factory Pattern 破坏了可测试性。在此处的“Big Modular Java with Guice”视频(12 分钟)中,Guice 的模块注入器被介绍为工厂的替代品。所以我的问题是我应该为我的应用程序的移动版本和默认版本(如 MobileFactory 和 DefaultFactory)创建不同的 Ginjector,否则这是不好的做法,我应该为一个 Ginjector 实例配置所有需要的版本。例如使用这样的注释绑定。
并在 GWT 入口点使用 @Mobile 注释绑定
在上面这样一个简化的例子中,它可能是可能的。但是如果一个应用程序有更多的依赖项需要移动和默认版本。它看起来像是回到了无法测试的“丑陋”(正如 Guice 的演讲中所说的)工厂。对不起我的英语不好。任何帮助表示赞赏。
gwt - 将 Gin 注入 GWT.create 创建的实例中
我有一个实例化对象的自定义延迟绑定器(重新绑定实现)。我想在 GWT.create() 返回的实例中有一些依赖项(@Inject 带注释的 setter 方法),由 GIN 完成。这可能吗?
因此,给定代码,例如:
如果 foo 的最终实现有:
如何让 GIN 自动将 bar 注入返回的 foo 实例?
gwt - 通过程序/类与 gwt/gin 绑定常量
常量如何被程序/类与 gwt/gin 绑定?
代替:
bindConstant().annotatedWith(AString.class).to("XYZ");
我们需要:(显然,它不会编译)
bindConstant().annotatedWith(AString.class).to(CustomStringProvider.class);
因为这个常量存储在 cookie/离线存储中。
gwt - GWTP 代码拆分
我正在使用带有 GWT 2.3 的 GWTP(Google 的 MVP 框架)。我想与我的演示者一起使用 GWT 代码拆分。
我知道@ProxyCodeSplit
演示者中的注释。像下面
这足够了吗?或者我是否需要挖掘 GWT Code Splitting 提供A call to GWT.runAsync
的类似Here
gwt-gin - 使用 GUICE 进行方法注入
请解释以下语句: •<strong>如果您不控制类的实例化,方法注入可能很有用。如果你有一个需要一些依赖的超类,你也可以使用它。(构造函数注入使这变得困难。)
构造函数注入如何使这变得困难????谢谢
gwt - 将 gwt ui-binding 与 google-gin 结合使用
有没有办法在通过 ui 绑定创建的小部件中使用依赖注入?
假设我有一个简单的小部件(在 com.example.client.ui.widget 包中):
然后我有一个通过使用此小部件的 ui 绑定定义的视图。例如:
这样做是行不通的,因为 ui 绑定中使用的小部件的无参数构造函数约束。但是,如果 GWT 编译器在有 @Inject 注释的情况下只使用 GIN,那不是很好吗?或者这可以通过任何其他方式完成吗?也许我完全错过了 GIN 和 GWT 的概念,如果是这样,任何提示都非常感谢。
在此先感谢,马库斯
gwt-mvp - 使用 Gin 将视图注入到其他视图中
我正在使用 MVP 架构(或至少一个近似值)并且具有演示者的层次结构,具有类似的嵌套视图。为简单起见,我将坚持前 2 个级别:
AppPresenter/AppView 在顶层。DocumentListPresenter/DocumentListView 和 TranslationPresenter/TranslationView 在第二级。
两个二级视图作为小部件添加到顶级视图的面板中,但目前这是通过将两个二级演示者注入顶级演示者,然后让顶级演示者将其视图传递给其视图来完成的通过setter方法。
这似乎有点迂回的做事方式。Gin 是否可以在完全不涉及演示者的情况下将二级视图注入顶级视图?
java - 在 gin 中绑定生成的类
我正在尝试动态生成一组事件处理程序(使用com.google.gwt.core.ext.Generator
子类)。整个生成过程运行良好,我生成的处理程序通过 setter 注入(@Inject 注释)接受 EventBus,整个想法是这些自动生成的处理程序在引擎盖下的(注入的)EventBus 中注册自己。问题是所有这些处理程序都必须以某种方式实例化。在将它们绑定到 GIN 模块之前,GIN 对它们一无所知;如下所示:
这段代码的问题是我还必须生成 gin 模块(它将包含所有 bind(...) 指令)。它运行良好,但我无法将生成的模块(@Inject it)安装到另一个未生成的模块中,以便执行其绑定指令(作为安装(MyDynamicModule.class)的结果)。我尝试了静态注入和提供程序的肮脏技巧 - 都没有成功。
有没有办法配置动态生成的 GIN 模块?或者也许有什么方法可以实例化动态生成的处理程序,以便发生 setter 注入(以及事件总线注册)?
这是示例代码片段:
需要注意的重要一点是,所有这些动态生成的处理程序都有一些其他依赖项@Injected(除了 EventBus)。这些依赖项(它们的类型)是特定于处理程序的(AnotherHandlerSpecificComponent
在上面的示例中)。所以我需要做的是以触发 GIN 注入的方式实例化这些处理程序(例如,我不能手动注入依赖项)。
提前感谢任何线索。我完全被困住了...
java - 在两个 Ginjector 实例中使用 @Singleton
我在 GWT 项目集(“主项目”、“小部件项目”、“服务适配器项目”)中有循环依赖问题。主要参考小部件和服务适配器。小部件引用服务适配器。问题来了。我想EventBus
几乎在任何地方都使用注入。我应该把我的 Ginjector 接口放在哪里?
它必须在每个项目中都可用,并且还必须引用每个项目中的类,以便能够注入来自不同项目的类。这显然是不可编译的。
我想为小部件使用一个单独的 Ginjector,一个仅用于EventBus
. 如果两个单独的 Ginjector 使用两个单独GinModules
的都包含@Singleton
EventBus
绑定,那么这两个 getter 是否会返回相同的EventBus
实例?
注意:这是杜松子酒,而不是 Guice 问题。