parameter-passing - 使用 Google Guice 注入(inject)构造函数参数值

标签 parameter-passing guice inject

我有一个简单的要求-

这是我要注入(inject) CalledService 对象的服务。

public class CallingService {

    private CalledService service;

    @Inject
    public CallingService(CalledService svc) {
        service = svc;
    }
}

CalledService 看起来像这样 -

public class CalledService {

    private String variable_value;

    public CalledService(String parameter) {
        variable_value = parameter;
    }

}

假设在 psvm 中,我正在编写这段代码来执行 -

Injector injector = Guice.createInjector(new AppInjector());        
CallingService service = injector.getInstance(CallingService.class);

问题是,如果 CalledService 有一个非参数化的构造函数,那么它就可以正常工作。但由于它是参数化的,我不知道如何注入(inject)参数值。

此外,其他几个服务可能希望用不同的参数值注入(inject) CalledService。所以我不想将任何静态值绑定(bind)到参数。

谁能建议使用 Google Guice 实现这一目标的最简单方法?另外,我在这个论坛上找到了很多答案,但它们并不是我想要的,而且有些解决方案过于复杂。提前致谢。

最佳答案

除了上面评论中的建议 - assisted inject 您可以在 Guice 中绑定(bind)实例。请看here有关详细信息/示例

希望对你有帮助

关于parameter-passing - 使用 Google Guice 注入(inject)构造函数参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42432868/

相关文章:

java - 覆盖 Guice 中的绑定(bind)或子模块

amazon-web-services - 为什么 dagger 在 AWS lambda 实现中被认为比 Guice 更好?

c++ - 将变量从 C++ 传递到 Matlab(工作区)

c# - 统一 5 : How to pass multiple parameters on button click function from inspector?

JQuery 不会将任何内容传递给 ASP.NET Controller

java - Guice 单例是否支持线程限制?

c# - spring.net注入(inject)字典顺序问题?

ruby - 在 Ruby 中重写 Enum#inject 以使用符号作为参数

java - 将 java javax.inject.Provider 与 Spring @Scope(BeanDefinition.SCOPE_PROTOTYPE) 一起使用

Javascript 函数调用另一个函数作为参数