问题标签 [guice-3]

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 回答
289 浏览

jersey-2.0 - 在基于 Jersey 的应用程序中使用 Google Guice for DI 在 weblogic 的服务器启动时出现 WELD 异常

我使用 Weblogic 12b 作为应用服务器。我的应用程序在我的项目中使用带有 Guice3 的 Jersey 2.5.1。我有一个从 org.glassfish.jersey.server.ResourceConfig 派生的名为 Application 的类。在服务器启动时,我收到如下错误:

似乎它正在用 WELD 代替 DI 的 google Guice。

我在业务层遇到了同样的问题,其中 EJB 类由 Java 类组成,它们是使用 @Inject 注入的。

我什至尝试将他的导入 @Inject 更改为谷歌注入,但异常已更改但未解决。

我尝试在 web-inf 中使用 beans.xml

0 投票
0 回答
98 浏览

java - 泛型类型的 Guice 绑定不适用于“.class”

我正在尝试使用 Guice 绑定一个通用类依赖项

我正在尝试创建一个Myclass<List<Integer>>,但绑定对我来说失败了

但这给了我一个编译错误,因为List<Integer>.class它是无效的。没有它我会得到一个运行时异常,因为 Guice 无法绑定泛型。

有人可以帮我弄清楚如何解决这个问题吗?我需要让绑定工作。

0 投票
1 回答
114 浏览

java - Guice - 如何在扩展抽象模块的类中注入依赖项 - Java

我必须从EnvironmentModule触发TestDriver.startPoller()因为 EnvironmentModule 是从 Abstractmodule 扩展的我不确定如何在EnvironmentModule中注入依赖关系是否可能?如果不是,我如何 从EnvironmentModule触发TestDriver.startPoller()

环境模块

预期的 :

TestDriver.startPoller();// 这工作正常

当前结果

TestDriver.startPoller();// thorwing 空指针异常,因为它没有被注入并且TestDriver为空

0 投票
1 回答
88 浏览

java - Google Guice 无法为每个测试覆盖我的哈希图

我最近切换到 Google Guice,现在我的结果被每个测试覆盖,而不是添加所有测试。我正在使用哈希图来收集每个测试的通过和失败,但不是为每个测试收集数据,而是覆盖前一个测试。我在我的构造函数中使用我的注入。使用 Selenium、Cucumber、Java 和 Eclipse。

抽象驱动程序

司机

驱动程序基地

页面库

页面对象

脚步

结果

收集通过或失败并将它们存储在数组中的方法。hashmap 字段是PlanResult

ArrayList> PlanResult = new ArrayList<>();

也试过@Singleton

0 投票
1 回答
618 浏览

java - Guice Assisted:没有使用 @com.google.inject.assistedinject.Assisted(value=prefix) 注释的 java.lang.String 的实现被绑定

我已经这样做了一百万次,但现在它不起作用,我不知道为什么!

我的界面定义了作家的合同,例如:

具体实施:

现在工厂:

最后是我的配置:

在启动时进行所有这些操作,它会引发一个异常,即:

  1. 没有绑定带有 @com.google.inject.assistedinject.Assisted(value=prefix) 注释的 java.lang.String 的实现。 在daemons.filerecorder.WriterFactory.textWriter
    中为 daemons.filerecorder.TextFileWriter.(TextFileWriter.java:38) 的第二个参数定位带有 @com.google.inject.assistedinject.Assisted(value=prefix) 注释的 java.lang.String
    (WriterFactory.java:1) at com.google.inject.assistedinject.FactoryProvider2.initialize(FactoryProvider2.java:666) at com.google.inject.assistedinject.FactoryModuleBuilder$1.configure(FactoryModuleBuilder.java:335)(通过模块: com.google.inject.util.Modules$OverrideModule -> modules.GuiceConfig -> com.google.inject.assistedinject.FactoryModuleBuilder$1)

  2. 没有绑定带有 @com.google.inject.assistedinject.Assisted(value=store) 注释的 java.lang.String 的实现。 同时在 daemons.filerecorder.WriterFactory.textWriter
    中为 daemons.filerecorder.TextFileWriter.(TextFileWriter.java:38) 的第一个参数定位带有 @com.google.inject.assistedinject.Assisted(value=store) 注释的 java.lang.String
    (WriterFactory.java:1) at com.google.inject.assistedinject.FactoryProvider2.initialize(FactoryProvider2.java:666) at com.google.inject.assistedinject.FactoryModuleBuilder$1.configure(FactoryModuleBuilder.java:335)(通过模块: com.google.inject.util.Modules$OverrideModule -> modules.GuiceConfig -> com.google.inject.assistedinject.FactoryModuleBuilder$1)

  3. 已在 daemons.filerecorder.WriterFactory.textWriter() 中配置了与带有 @com.google.inject.assistedinject.Assisted(value=) 注释的 java.lang.String 的绑定。在 daemons.filerecorder.WriterFactory.textWriter(WriterFactory.java:1)
    在 com.google.inject.assistedinject.FactoryProvider2.initialize(FactoryProvider2.java:666) 在 com.google.inject.assistedinject.FactoryModuleBuilder$1.configure(FactoryModuleBuilder. java:335)(通过模块:com.google.inject.util.Modules$OverrideModule -> modules.GuiceConfig -> com.google.inject.assistedinject.FactoryModuleBuilder$1)

有什么想法可以完成这项工作吗?

提前致谢。

0 投票
1 回答
31 浏览

java - 如何为具有参数化构造函数的类获取 Guice 注入器

我现在编写了以下课程和测试代码,并且工作正常。

到这里一切正常,测试通过。现在我想在 AppleRegistryClass 中引入新的依赖项这里是变化

现在,当我为新更改编写测试时,它会超时测试代码:

有人可以帮我编写 AppleRegistry 的测试类吗?提前致谢!

0 投票
0 回答
32 浏览

java - 有没有办法绑定供应商在谷歌吉斯?

我试着像下面那样做

但我收到了这个错误。

没有找到适合 toProvider(com.google.inject.Provider<java.util.function.Supplier>) 的方法

0 投票
1 回答
501 浏览

java - 使用 guice 绑定一个番石榴供应商

我想做这样的绑定,

提供者由外部函数返回,因此,在 内部toProvider(),我调用该函数并返回 Provider <Supplier<TestClass>>

供应商来自番石榴,这样做的原因是,有一个与 TestClass 关联的文件,我需要读取该文件并将这些值分配给 TestClass 的各个字段。

并且该文件在运行时更改,因此我需要一种方法来刷新存储在 TestClass 中的值。待办事项我使用的番石榴供应商。Guava 供应商有一个 get 方法,当调用该 get 方法时,如果我用来memoizeWithExpiration()创建实例,那么它会检查 TTL 值,如果它通过,那么我可以指定一个 lambda 函数来读取文件并分配值。

所以我需要Supplier<TestClass>像这样注入

但是因为与 Guice 进行绑定让我感到困惑。

0 投票
1 回答
219 浏览

java - 将可变参数传递给 Guice @Provides 方法

我有一个 Guice 模块,它有一个 @Provides 方法,该方法接受 2 个参数并返回接口的两个实现之一

我已经看到了这个几乎与我的问题相似的问题 - 将参数传递给 Guice @Provides 方法。但是在这里,这个问题的 OP 想要将常量 String 变量传递给 @Provides 方法,而在我的情况下,我想传递一个将在运行时生成的字符串。如何解决这个问题?任何形式的帮助将不胜感激。

谢谢

0 投票
0 回答
13 浏览

guice - InjectorImpl Guice 中的线程争用

我们在服务中使用 guice 进行 DI。显然,对于任何非单例注入,guice 正在调用以下具有同步锁的方法。对非单例对象是否有任何特定要求也应该通过同步锁?

Guice 版本:4.0