我有一个简单的要求-
这是我要注入(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/