问题标签 [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.

0 投票
1 回答
596 浏览

java - 动态添加绑定到 GIN 模块

我可以动态添加绑定到 GIN 模块吗?

例如,拥有一个模块“ExampleModule”并在其上调用静态方法,例如:

和 GIN 自动绑定?

或者也许使用注释?

提前致谢。

0 投票
2 回答
4798 浏览

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 的演讲中所说的)工厂。对不起我的英语不好。任何帮助表示赞赏。

0 投票
1 回答
526 浏览

gwt - 将 Gin 注入 GWT.create 创建的实例中

我有一个实例化对象的自定义延迟绑定器(重新绑定实现)。我想在 GWT.create() 返回的实例中有一些依赖项(@Inject 带注释的 setter 方法),由 GIN 完成。这可能吗?

因此,给定代码,例如:

如果 foo 的最终实现有:

如何让 GIN 自动将 bar 注入返回的 foo 实例?

0 投票
1 回答
485 浏览

gwt - 通过程序/类与 gwt/gin 绑定常量

常量如何被程序/类与 gwt/gin 绑定?

代替:

bindConstant().annotatedWith(AString.class).to("XYZ");

我们需要:(显然,它不会编译)

bindConstant().annotatedWith(AString.class).to(CustomStringProvider.class);

因为这个常量存储在 cookie/离线存储中。

0 投票
1 回答
1085 浏览

gwt - GWTP 代码拆分

我正在使用带有 GWT 2.3 的 GWTP(Google 的 MVP 框架)。我想与我的演示者一起使用 GWT 代码拆分。

我知道@ProxyCodeSplit演示者中的注释。像下面

这足够了吗?或者我是否需要挖掘 GWT Code Splitting 提供A call to GWT.runAsync的类似Here

0 投票
0 回答
302 浏览

gwt-gin - 使用 GUICE 进行方法注入

请解释以下语句: •<strong>如果您不控制类的实例化,方法注入可能很有用。如果你有一个需要一些依赖的超类,你也可以使用它。(构造函数注入使这变得困难。)

构造函数注入如何使这变得困难????谢谢

0 投票
1 回答
1921 浏览

gwt - 将 gwt ui-binding 与 google-gin 结合使用

有没有办法在通过 ui 绑定创建的小部件中使用依赖注入?

假设我有一个简单的小部件(在 com.example.client.ui.widget 包中):

然后我有一个通过使用此小部件的 ui 绑定定义的视图。例如:

这样做是行不通的,因为 ui 绑定中使用的小部件的无参数构造函数约束。但是,如果 GWT 编译器在有 @Inject 注释的情况下只使用 GIN,那不是很好吗?或者这可以通过任何其他方式完成吗?也许我完全错过了 GIN 和 GWT 的概念,如果是这样,任何提示都非常感谢。

在此先感谢,马库斯

0 投票
1 回答
335 浏览

gwt-mvp - 使用 Gin 将视图注入到其他视图中

我正在使用 MVP 架构(或至少一个近似值)并且具有演示者的层次结构,具有类似的嵌套视图。为简单起见,我将坚持前 2 个级别:

AppPresenter/AppView 在顶层。DocumentListPresenter/DocumentListView 和 TranslationPresenter/TranslationView 在第二级。

两个二级视图作为小部件添加到顶级视图的面板中,但目前这是通过将两个二级演示者注入顶级演示者,然后让顶级演示者将其视图传递给其视图来完成的通过setter方法。

这似乎有点迂回的做事方式。Gin 是否可以在完全不涉及演示者的情况下将二级视图注入顶级视图?

0 投票
1 回答
276 浏览

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 注入的方式实例化这些处理程序(例如,我不能手动注入依赖项)。

提前感谢任何线索。我完全被困住了...

0 投票
2 回答
889 浏览

java - 在两个 Ginjector 实例中使用 @Singleton

我在 GWT 项目集(“主项目”、“小部件项目”、“服务适配器项目”)中有循环依赖问题。主要参考小部件和服务适配器。小部件引用服务适配器。问题来了。我想EventBus几乎在任何地方都使用注入。我应该把我的 Ginjector 接口放在哪里?

它必须在每个项目中都可用,并且还必须引用每个项目中的类,以便能够注入来自不同项目的类。这显然是不可编译的。

我想为小部件使用一个单独的 Ginjector,一个仅用于EventBus. 如果两个单独的 Ginjector 使用两个单独GinModules的都包含@Singleton EventBus绑定,那么这两个 getter 是否会返回相同的EventBus实例?

注意:这是杜松子酒,而不是 Guice 问题。