问题标签 [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.
java - guice 辅助注入工厂中通用返回类型的问题
到目前为止,我成功使用了 google guice 2。在迁移到 guice 3.0 时,我遇到了辅助注入工厂的问题。假设以下代码
在创建注入器时,我得到以下异常:
使用来自 guice 2 的辅助注入创建器,我的配置工作:
到目前为止,我发现的唯一解决方法是从工厂方法的返回类型中删除泛型参数:
有谁知道,为什么 guice 3 不喜欢工厂方法中的泛型参数,或者我对辅助注入工厂的普遍误解?谢谢!
maven - 从 maven 中央存储库下载 guice3.0 工件
我正在尝试将我的 struts2 Web 应用程序从 guice2.0 升级到 guice3.0。我正在尝试使用 maven jetty 对其进行测试。我已成功升级我的 pom.xml 以使用 3.0 版本的正确版本和 groupId,但如果我调用 mvn jetty:run 我看到它正在尝试下载 guice-3.0-no_deps.jar
哪个会引发构建错误并且找不到中央存储库?
如果我不包含任何 guice 扩展,我不会收到此错误。
有任何想法吗?
谢谢
guice - Guice 中的模块初始化和销毁处理程序?
以下链接描述了如何使用带有 start() 和 stop() 方法的 Service 接口在 Guice 中处理模块初始化和销毁:
http://code.google.com/p/google-guice/wiki/ModulesShouldBeFastAndSideEffectFree
文档解释说,服务的创建在客户端代码中如下所示:
但没有列出具体服务类的任何示例实现。谁能给我一份?至少是 start() 和 stop() 包含的示例实现。
guice - 根据类的 Annotation 绑定构造函数参数
我有一个接口:InterfaceA。
我有一堂课:ConcreteA。
我还有两个注释:@AnnotA和@AnnotB。
我已经完成了以下绑定:
接下来,ConcreteA 类有一个构造函数,它接受一个String
名为hostName的参数。
我需要代码来描述以下内容:
如果 ConcretaA 正在使用 @AnnotA,则将 hostName 与字符串值 'localhost' 绑定
如果 ConcreteA 正在使用 @AnnotB,则将 hostName 与字符串值“externalhost”绑定
对此有任何解决方案的想法吗?
java - 依赖注入的正确结构(使用 Guice)
我想要一些关于为具有下述结构的系统构建依赖注入的最佳方法的建议和反馈。我正在使用 Guice,因此更喜欢以基于注释的声明为中心的解决方案,而不是重 XML 的 Spring 样式配置。
考虑一组相似的对象,Ball, Box, and Tube
每个都依赖于一个Logger
,通过构造函数提供。(这可能并不重要,但所有四个类都恰好是单例 --- 应用程序,而不是四人组,品种。)
一个ToyChest
类负责创建和管理三个形状对象。 除了创建形状对象之外,ToyChest
它本身不依赖于。Logger
该类ToyChest
被实例化为类中的应用程序单例Main
。
我对构建形状的最佳方法感到困惑ToyChest
。我要么 (1) 需要访问已附加到实现绑定的 GuiceInjector
实例,要么 (2) 需要创建一个附加到 right的新实例。Module
Logger
Injector
Module
(1) 是通过向 中添加一个@Inject Injector injector
字段来完成的ToyChest
,但这感觉很奇怪,因为ToyChest
实际上并没有任何直接依赖关系——只有它实例化的孩子的依赖关系。
对于 (2),我不确定如何传入适当的Module
.
我在正确的轨道上吗?有没有更好的方法来构建它?
这个问题的答案提到传递 aProvider
而不是直接使用 Injector ,但我不确定它应该如何工作。
编辑:
也许一个更简单的问题是:在使用 Guice 时,构造形状对象的合适位置在哪里? ToyChest
将对它们进行一些配置,但我想它们可以在其他地方构建。 ToyChest
(作为管理它们的容器),而不是Main
,在我看来只是构建它们的合适位置。
java - 如何使用 Guice 的 AssistedInject?
我已经阅读了https://github.com/google/guice/wiki/AssistedInject,但它没有说明如何传递 AssistedInject 参数的值。injector.getInstance() 调用会是什么样子?
jersey - Jersey, Guice 使用非根请求路径
我在标准配置中在 Tomcat 6.0.32 上使用 Jersey 1.11 而不是 Guice 3.0:
还有一个简单的资源类:
鉴于此,我认为访问“/ws/resource”会起作用;但实际上没有找到资源。问题似乎在于未正确计算请求路径。作为一种解决方法,我已将参数设置PROPERTY_FILTER_CONTEXT_PATH
为/ws
,这使整个工作正常:
因此我的问题是:
- 这真的是一个错误还是一个“功能”?
- 是否有其他解决方案或解决方法?
有关信息,我看到了一个可能相关的 Guice 错误,它似乎已合并到另一个错误中,但我想知道它是否已正确修复(链接)
java - Guice3 Singleton 从未在 GAE 项目中实例化
我是 Guice 的新手,已经被卡住了:)
我几乎从Motomapia 项目(您可以浏览)中复制了 GuiceConfig、OfyFactory 类并稍微修改了 Ofy,并将其用作示例。
我创建GuiceServletContextListener
的看起来像这样
我将此侦听器添加到我的 web.xml
OfyFactory 看起来像这样
Ofy 根本没有任何 Guice 注释......
最后测试我试图使用注入字段的servlet看起来像这样
Ofy ofy 始终为空。它从来没有注射过。并且它没有被注入,因为 OfyFactory 从未实例化,它的构造函数从未被调用。
你能指出我做错了什么吗?为什么我的单例从未创建?
非常感谢。
java - Guice 绑定提供程序未用于依赖项实现
我正在尝试使用提供程序注入将预先配置的对象注入工厂:
当我使用注入器获取MyCacheFactory
实例时,我没有得到日志输出和未配置的CacheBuilder<Object, Object>
实例;我的配置都没有应用。设置断点验证提供程序从未被使用。
我也尝试过申请@Named("MyCacheBuilder")
合适的作品:
当我尝试运行此代码时,我得到CreationException
:
我还在类和构造函数声明中尝试了原始和泛型类型引用的各种组合,但没有额外的成功。
我可以通过简单地创建提供程序并绑定从get()
我自己返回的实例来解决这个问题,但我希望(并且希望)Guice 会为我做这件事。
我的设置有什么微妙(或明显)的问题吗?
guice - Guice,注入类型Literal使用@AssistedInject 时
这有效:
当我这样做时,Guice 会自动注入表示 String 的 TypeLiteral:
但是当使用辅助注入尝试同样的事情时:
我的模块看起来像这样:
安装模块时出现异常:
这当然是我试图注入的 TypeLiteral 问题,因为当我删除它时,通用工厂确实可以正常工作。
所以,我现在可能只是建立自己的工厂,但我很好奇这是否可行?使用 FactoryModuleBuilder 是否略有不同?