草庐IT

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

java - 有人将 ServiceLoader 与 Guice 一起使用过吗?

我一直想通过我们的应用程序+构建系统在更大规模上进行尝试,但更高的优先级一直将其推到次要位置。这似乎是一种加载Guice模块的好方法,并且避免了对“硬编码配置”的常见提示。个别配置属性很少会自行更改,但您几乎总是会有一组配置文件,通常用于不同的环境(调试、生产等)。ServiceLoader允许您提取定义为给定类型的服务的所有实现的列表。将其与Guice放在一起,您最终会得到:importjava.util.ServiceLoader;importcom.google.inject.AbstractModule;importcom.google.inject.Module;public

java - 使用 Google Guice 注入(inject) java 属性

我想使用googleguice使属性在我的应用程序的所有类中可用。我定义了一个加载和绑定(bind)属性文件Test.properties的模块。Property1=TESTProperty2=25包com.test;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.IOException;importjava.util.Properties;importcom.google.inject.AbstractModule;importcom.google.inject.name.Names