gpt4 book ai didi

java - Guice 注入(inject)器使用的最佳实践

转载 作者:行者123 更新时间:2023-11-29 04:18:26 28 4
gpt4 key购买 nike

来自 Guice 文档:

 public static void main(String[] args) {
/*
* Guice.createInjector() takes your Modules, and returns a new Injector
* instance. Most applications will call this method exactly once, in their
* main() method.
*/
Injector injector = Guice.createInjector(new BillingModule());

/*
* Now that we've got the injector, we can build objects.
*/
BillingService billingService = injector.getInstance(BillingService.class);
...
}

所以,在所有这些工作之后,如果我需要从主类中获取我的 BillingService 实例 - 我需要保持注入(inject)器变量上的链接来执行此操作?

我的意思是,在其他类(class)中,我需要做这样的事情:

BillingService billingService = MainClass.injector.getInstance(BillingService.class)

获取 BillingService 实例?这对我来说似乎不太优雅,还有其他方法可以做到这一点吗?

最佳答案

这就是模块存在的原因。

只需将几个模块添加到您的createInjector(...) 方法即可。

如果你的其他类是通过你的模块引用的,你可以简单地写如下:

class PaymentService {
@Inject BillingService billingService;
}

我会做的是使用一个“应用程序”类来启动一切,就像您在 Guice 配置的类中有您的 main 方法一样。

关于java - Guice 注入(inject)器使用的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50757313/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com