草庐IT

guice - 在 Kotlin & Guice 中提供一个通用实例

我有一个GuiceModule提供List使用@Provides-带注释的方法。classTestModule():Module{overridefunconfigure(binder:Binder){}@ProvidesfungetStrings():List=listOf("foo","bar")}classTest{@Testfun`providercannotdeliver`(){valinjector=Guice.createInjector(TestModule())injector.getInstance(object:Key>(){})}}但是,测试失败了:1)Noim

java - jdbi,带 dropwizard 的 guice

您好,我正在尝试使用dropwizard框架创建一个应用程序。我有DAO类impl,它需要连接管理器实例的句柄,然后将用于获取数据库连接。我有一个Multi-Tenancy数据库应用程序。此连接管理器将是自定义实现。应用使用hikaricp作为连接池和mysql数据库。我想使用dropwizard管理对象功能初始化数据源和连接池。初始化数据源后,我想使用类似guice绑定(bind)的方式在每个dao类中注入(inject)连接管理器实例bind(ConnectionManager.class).toProvider(ConnectionManagerProvider.class);然

java - 没有实现被绑定(bind) - Java Guice

这里的新手尝试使用虚拟JavaFacebook应用程序,该应用程序使用Guice将数据库依赖项注入(inject)Facebook工厂,但继续让Guice错误告诉我:###Noimplementationforcom.example.storage.Dbannotatedwith@com.example.storage.annotations.SystemDb()wasboundwhilelocatingcom.example.storage.Dbannotatedwith@com.example.storage.annotations.SystemDb()forparameter0a

java - 如何使用 Guice @Inject 到现有对象层次结构中?

我有一个现有的对象层次结构,其中一些对象具有需要注入(inject)的字段。还有一些其他对象是使用GoogleGuice构造的并且需要注入(inject)对先前描述的对象层次结构中某些对象的引用。我如何使用Guice进行此类注入(inject)?问题在于现有层次结构中的对象不是使用Guice构造的,因此默认情况下不受注入(inject)过程的约束。当然,injector.injectMembers()方法能够注入(inject)现有对象实例,但它不适用于对象层次结构。对于那些想知道为什么我不能使用Guice构建提到的对象层次结构的人。此层次结构表示GUI对象,由GUI框架(Apache

java - Guice 代理支持循环依赖

启动时我的代码出现以下错误:Triedproxyingcom.bar.Footosupportacirculardependency,butitisnotaninterface.这个代理究竟是如何工作的?如果我只是在接口(interface)后面抛出足够多的类,一切都会好起来吗?(我知道循环依赖通常是一种代码味道,但我认为在这种情况下没问题。) 最佳答案 虽然“注入(inject)接口(interface)”方法是完全有效的,并且在某些情况下甚至可能是更好的解决方案,但一般来说,您可以使用更简单的解决方案:Providers。对于g

java - Guice jar 中的 Assisted 类在哪里?

我已经通过Maven下载了Guice2.0和3.0,但在jar中找不到整个com.google.inject.assistedinject包。Guice的所有其他组件似乎都在那里,但是Assisted它的兄弟根本不存在。知道他们去了哪里吗? 最佳答案 辅助与AssistedInjection的其余部分捆绑在一起扩展作为一个单独的Artifact在com.google.inject.extensions组,以及多绑定(bind)、持久性和Servlet。4.0iscom.google.inject.extensions:guice-a

java - 类中的 Guice 注入(inject)字段不是由 Guice 创建的

我有一个这样的类,我在代码的某个地方创建了自己:classStarryEyes{@InjectMyValidatorvalidator;publicStarryEyes(Stringname){//..}publicdoSomething(){//validatorisNULL}}我希望Guice注入(inject)一个validator实例,它有一个@Singleton注释。我有一个在启动时加载的模块,它包含以下行:bind(MyValidator.class);但是,它似乎不起作用,因为“validator”始终为空。我尝试了多种变体,例如:bind(MyValidator.cla

java - 在 Guice 中注入(inject)通用工厂

以下代码是一个生产Bar的工厂示例给出Foo.工厂不管什么T是:对于任何类型T,它可以制作一个Bar来自Foo.importcom.google.inject.*;importcom.google.inject.assistedinject.*;classFoo{publicvoidflip(Tx){System.out.println("flip:"+x);}}interfaceBar{voidflipflop(Tx);}classBarImplimplementsBar{Foofoo;@InjectBarImpl(Foofoo){this.foo=foo;}publicvoidfl

java - Play 2.4 中的 Guice、DI 和单元测试

因此,我一直试图通过文档自行解决这个问题,但我一无所获。我在创建存储库对象的服务类中设置了一些简单的DI绑定(bind)。简单的。但是,当我在测试模式下运行它时,@Inject什么都不做,并且存储库对象永远不会实例化。@InjectTagRepositorytagRepository;所以在使用它的那一行,在测试模式下,我们当然会得到一个NullPointerExceptiontagRepository.tagExistsByName(tag);这像这样冒泡到我的测试中:[error]Testservices.TagsServiceTest.testAddNewTagfailed:ja

java - 您使用什么技术来调试复杂的 guice 绑定(bind)?

我有一组复杂的绑定(bind),其中包括许多私有(private)绑定(bind)来解决robotlegsproblem.由于Guice报告可理解的出价错误的能力有限,我想知道除了阅读Guice的运行时异常之外,还有哪些有效的工具或技术(如果有的话)可用于解决运行时绑定(bind)错误。单步执行配置代码没有帮助,因为配置发生在启动时而不是对象实例化时,后者通常会发生错误。Guice图表插件如果有效的话可能会很有用——我用它进行的实验导致图表不正确。 最佳答案 我从thisanswer中发现以下两个对调试有用的技巧:Grapher可视