草庐IT

java - 如何将一些类的创建从 Guice 注入(inject)器委托(delegate)给另一个工厂?

例如,RESTEasy的ResteasyWebTarget类有一个方法proxy(Classclazz),就像Injector的getInstance(Classclazz).有没有办法告诉Guice某些类的创建应该委托(delegate)给某个实例?我的目标是Guice的以下行为:当注入(inject)器被要求提供类A的新实例时,尝试实例化它;如果无法实例化,则请求另一个对象(例如ResteasyWebTarget实例)来实例化该类。我想写一个这样的模块:@Overrideprotectedvoidconfigure(){StringapiUrl="https://api.examp

java - Guice:如何根据(动态网络属性)在运行时更改注入(inject)

以下是我面临的问题的近似值。假设我们有一个带有一些规则的密码validator。publicinterfaceRuleChecker{//Checksforapasswordstrenght,returns10//forstrongor0forsoftpassword.intcheck(Stringpass);}然后我们有几个实现,我们的服务只会接受超过8分的密码。publicclassNoCheckimplementsRuleChecker{publicintcheck(Stringpass){return10;}}publicclassLengthCheckimplementsRu

java - Guice 3.0 + Tomcat 7.0 = ClassLoader 内存泄漏

我知道这个问题已经存在了至少3年(Issue92),但我仍然对它的当前状态不满意。我也知道,如果您在重新部署后重新启动,这不会影响Tomcat(如Guice+Tomcatpotentialmemoryleak中所建议)。我的问题是在一些重新部署后我遇到了OutOfMemoryError:PermGen错误。请注意,我没有明确使用google-collections,我只使用Guice3.0(通过maven)。分析堆转储后,我仍然看到线程com.google.inject.internal.Finalizer仍然处于Activity状态,保留对Tomcat的WebappClassLoad

java - 如何将 Jackson ObjectMapper 与 Guice/Jersey Hook

我似乎无法正确注册我的JacksonObjectMapper模块。我正在使用Guice+Jersey+Jackson(FasterXML)堆栈。我已经了解了如何根据此处的各种问题自定义ObjectMapper。特别是,我声明了一个ContextResolver,标记为@javax.ws.rs.ext.Provider和@javax.inject.Singleton。我有一个GuiceServletContextListener:@OverrideprotectedInjectorgetInjector(){Injectorinjector=Guice.createInjector(ne

java - Guice + Tomcat 潜在的内存泄漏

我刚刚开始将GoogleGuice与我的Tomcat网络应用程序一起使用,并且在取消部署WAR文件时注意到catalina.out文件中的以下内容:May16,20115:37:24PMorg.apache.catalina.startup.HostConfigcheckResourcesINFO:Undeployingcontext[/app]May16,20115:37:24PMorg.apache.catalina.loader.WebappClassLoaderclearReferencesThreadsSEVERE:Awebapplicationappearstohavest

java - Guice 只注入(inject)一些构造函数

假设我有一些Message类,如下所示。(为简单起见,这是一个虚构的类。)publicclassMessage{privateStringtext;publicMessage(Stringtext){this.text=text;}publicvoidsend(Personrecipient){//IthinkIshouldbeGuice-injectingthesender.MessageSendersender=newEmailBasedMessageSender();sender.send(recipient,this.text);}}由于我有不同的MessageSender实现

java - 获取多个相同类型的guice单例

你能得到2个相同底层类型的单例实例吗?这在spring中显然是微不足道的,因为它基于您附加范围的命名实例,但我看不到guice中关于将类型绑定(bind)到实现类的等效项。请注意,我不想绑定(bind)到实例,因为有问题的实例通过guice注入(inject)了其他依赖项。 最佳答案 我想补充Marcin的回复,补充说在这种情况下您不必限制自己使用toInstance()或提供程序方法。以下内容同样有效:bind(Person.class).annotatedWith(Driver.class).to(MartyMcFly.clas

java - Guice 辅助注入(inject)已配置

我对AssistedInject有疑问。我按照此链接上的说明进行操作https://github.com/google/guice/wiki/AssistedInject但是当我运行我的应用程序时出现错误:ERROR[2015-04-2314:49:34,701]com.hubspot.dropwizard.guice.GuiceBundle:ExceptionoccurredwhencreatingGuiceInjector-exiting!com.google.inject.CreationException:Unabletocreateinjector,seethefollowi

java - JAXB 和 Guice : How to integrate and visualize?

我发现将JAXB与Guice一起使用是可行的,但具有挑战性:两个库都在“争夺”对象创建的控制权,您必须小心避免循环依赖,并且它可能会与所有JAXB适配器和GuiceProviders等等。我的问题是:你如何处理这个配置?可以应用哪些一般策略/经验法则?你能给我指出一个好的教程或编写好的示例代码吗?如何可视化依赖关系(包括Adapter和Providers)? 最佳答案 对于一些示例代码,一些示例工作已在此处完成:http://jersey.576304.n2.nabble.com/Injecting-JAXBContextProvi

java - guice 辅助注入(inject)工厂中通用返回类型的问题

到目前为止,我成功使用了googleguice2。在迁移到guice3.0时,我遇到了辅助注入(inject)工厂的问题。假设以下代码publicinterfaceCurrency{}publicclassSwissFrancsimplementsCurrency{}publicinterfacePayment{}publicclassRealPaymentimplementsPayment{@InjectRealPayment(@AssistedDatedate){}}publicinterfacePaymentFactory{Paymentcreate(Datedate);}pub