草庐IT

java - Tomcat WebSocketServlet 和 Google Guice

我有一个需要使用Tomcat7网络套接字的webapp。在这个web应用程序中,所有标准Servlet(那些扩展javax.servlet.http.HttpServlet)都可以很好地(并且正确地)与GoogleGuice一起工作。为了让我的Servlet与Guice处理程序一起工作,我只是:用@Singleton装饰servlet为MyHandler实例声明私有(private)Provider并生成一个标记为注入(inject)的setter用@Inject装饰Servlet的构造函数举例说明以上几点:@SingletonpublicclassMyServletextendsHt

java - 如何测试 Guice 注入(inject)?

我让GoogleGuice负责连接我的对象。但是,如何测试绑定(bind)是否正常工作?例如,假设我们有一个类A,它有一个依赖B。如何测试B是否正确注入(inject)?classA{privateBb;publicA(){}@InjectpublicvoidsetB(Bb){this.b=b}}注意A没有getB()方法,我想断言A.b不是null. 最佳答案 对于任何复杂的Guice项目,您应该添加测试以确保模块可用于创建您的类。在您的示例中,如果B是Guice无法弄清楚如何创建的类型,那么Guice将无法创建A。如果启动服务器

java - 在其模块中访问 Guice 注入(inject)器?

我正在扩展Guice的AbstractModule并且在扩展类内部我需要访问Guice的注入(inject)器。这可能,如果是,如何? 最佳答案 这是一个不寻常的请求。模块更像是配置文件而不是逻辑文件:模块被读取以创建注入(inject)器,然后一旦注入(inject)器被创建,模块就完成了它的工作。对于一个简单的模块,在模块准备好被丢弃之前,注入(inject)器实际上是不存在的。在任何情况下,您通常都应该请求Provider,而不是请求Injector获取X类。.吉策会injectanXorProviderforanybindi

java - 使用 Guice 将参数传递给构造函数

我有一个工厂如下,publicfinalclassApplication{privatestaticIFoofoo;publicstaticIFoogetFoo(Stringbar){//ineedtoinjectbartotheconstructorofFoo//obviousihavetodosomething,notsurewhatInjectorinjector=Guice.createInjector();logger=injector.getInstance(Foo.class);returnlogger;}}这是Foo的定义:classFoo{Foo(Stringbar)

java - Tomcat Guice/JDBC 内存泄漏

由于Tomcat中的孤立线程,我遇到了内存泄漏。特别是,Guice和JDBC驱动程序似乎没有关闭线程。Aug8,20124:09:19PMorg.apache.catalina.loader.WebappClassLoaderclearReferencesThreadsSEVERE:Awebapplicationappearstohavestartedathreadnamed[com.google.inject.internal.util.$Finalizer]buthasfailedtostopit.Thisisverylikelytocreateamemoryleak.Aug8,2

java - Spring 和 Guice 一起,或者只是 Spring

我正在从头开始一个新的JavaWeb应用程序。我对SpringFramework没有太多经验,但我知道我想使用它的一些功能,例如事务管理。另一方面,我真的很喜欢Guice的依赖注入(inject)。我知道Guice和Spring可以一起工作:http://www.jroller.com/mindcrime/entry/an_example_of_integrating_guice但在开始设计我的应用程序之前,我想知道是否有人在采用这种方法时遇到了问题。另外,我真正喜欢Guice的一点是您不需要XML配置文件,而只需要java模块,它更短且更易于阅读。Spring上有没有类似于Guice

dependency-injection - 使用 Guice + Kotlin 绑定(bind)对象列表

我正在使用以下Controller定义在Kotlin中编写JavaFX应用程序:classMainController{@InjectprivatelateinitvarcomponentDescriptors:List/*Morecodegoeshere*/}我正在使用Guice进行依赖管理。我正在尝试注入(inject)通过java.util.ServiceLoader加载的类实例列表。我的问题是定义一个绑定(bind),它将加载的对象实例列表注入(inject)到声明的字段中。我尝试了基于注释的配置:internalclassMyModule:AbstractModule(){o

java - Google Guice 与 PicoContainer 的依赖注入(inject)

我的团队正在研究依赖注入(inject)框架,并试图在使用Google-Guice和PicoContainer之间做出决定。我们正在我们的框架中寻找几样东西:代码占用量小-我所说的代码占用量小是指我们不希望代码库中到处都是依赖注入(inject)代码。如果我们需要在未来进行重构,我们希望它尽可能简单。性能-每个框架在创建和注入(inject)对象时有多少开销?易于使用-是否有很大的学习曲线?我们是否必须编写大量代码才能使一些简单的工作正常工作?我们希望配置尽可能少。社区规模-较大的社区通常意味着项目将继续得到维护。我们不想使用框架并且必须修复我们自己的错误;)此外,我们在此过程中遇到的

java - 在 Guice 中覆盖绑定(bind)

我刚刚开始使用Guice,我能想到的一个用例是,在测试中我只想覆盖单个绑定(bind)。我想我想使用其余的生产级绑定(bind)来确保一切设置正确并避免重复。假设我有以下模块publicclassProductionModuleimplementsModule{publicvoidconfigure(Binderbinder){binder.bind(InterfaceA.class).to(ConcreteA.class);binder.bind(InterfaceB.class).to(ConcreteB.class);binder.bind(InterfaceC.class).t

java - 如何使用 Guice 的 AssistedInject?

我已阅读https://github.com/google/guice/wiki/AssistedInject,但它没有说明如何传入AssistedInject参数的值。injector.getInstance()调用会是什么样子? 最佳答案 查看FactoryModuleBuilder的javadoc类。AssistedInject允许您为类动态配置Factory,而不是自己编写代码。当您的对象具有应注入(inject)的依赖项以及必须在创建对象期间指定的一些参数时,这通常很有用。文档中的示例是RealPaymentpublicc