gpt4 book ai didi

java - 注入(inject)器的Guice和 'injection'

转载 作者:行者123 更新时间:2023-12-04 05:38:23 29 4
gpt4 key购买 nike

阅读这篇文章后,我尝试了 Google Guice:http://tech.puredanger.com/2007/07/03/pattern-hate-singleton/

但是有一点我不明白:当您使用 Guice 的 @Singleton 注释时,注入(inject)会注入(inject)相同的实例,但只针对一个注入(inject)器。

如果我在其他地方创建另一个注入(inject)器,@Singletion 不起作用(如文档中所述)。

所以我将不得不在我的代码中的任何地方传递注入(inject)器实例,或者使其在单例中可用。

这正是我想避免的。

我们如何管理 injectorS 以使其每次都返回相同的实例?

谢谢。

最佳答案

使用 Guice 的代码通常不需要访问注入(inject)器本身:对象将接收它们的依赖关系或 Provider<T>对于他们的依赖关系,如果他们需要构建多个。

通常,对象仅在具有依赖项但本身不是由注入(inject)器创建的情况下才需要注入(inject)器(因此它们不能注入(inject)其依赖项)。如果您在任何地方都使用 Guice,您可能只需要在应用程序启动时执行此操作。如果您只在项目的一部分中使用 Guice,则注入(inject)器将成为一个单例,代理您现在通过它访问的所有其他单例。

请注意,类注释 @Singleton仍然是单例对象,尽管没有与非注入(inject)单例相关的一些包袱。你仍然应该尽量避免过度依赖它们。

关于java - 注入(inject)器的Guice和 'injection',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11610957/

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