当前位置: 首页 > 知识库问答 >
问题:

喷射器的导向和“喷射”

魏硕
2023-03-14

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

但有一点我不明白:当您使用Guice的@Singleton Anotion时,注入注入相同的实例,但只针对一个注入。

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

因此,我必须在代码中的任何地方传递注入器实例,或者使其在单例中可用。

这正是我想要避免的。

我们如何管理喷油器以使每次都返回相同的实例成为可能?

谢谢。

共有1个答案

上官琦
2023-03-14

使用Guice的代码通常不需要访问注入器本身:对象将接收它们的依赖项或提供程序

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

请注意,注释为@Singleton的类仍然是Singleton对象,尽管没有与未注入的Singleton相关的一些负担。你仍然应该避免过度依赖他们。

 类似资料:
  • 我创建了一个项目,并添加了插件和dependency,我还对其进行了测试,结果很好。但当我重构项目以使用并启用jetifier工具项目不会构建,我会遇到多个错误,如: 转换文件“crashlytics-2.9.2.aar”以匹配属性{artifactType=jetitied-aar}失败 似乎< code>jetifier工具和< code>Crashlytics依赖项有问题。有没有办法关闭单个

  • 我正在用Jetpack Compose创建一个布局,其中有一个列。我希望将此列中的项目居中:

  • 我使用三台机器和本指南在aws集群上设置了一个测试环境。 我在本地模式下测试了我的代码,并使用wirbelsturm创建了一个本地vagrant集群,这两种方法都能产生预期的结果。 当我现在向Web服务器提交代码时,我的喷口和所有的螺栓都是静默的。我的嘴读的是csv,我把它抄送给了灵气和我的主管。storm UI显示我的拓扑为活动的,并显示所有螺栓和我的喷口,但计数器不可见。主管没有已使用得员工.

  • 我想根据条件更改我的开始导航片段。我的起始片段可以是片段1或片段2。有没有办法实现它?

  • 这里可能发生了同样的事情:错误backtype.storm.util-Async循环死亡!BufferUnderFlowException:null,但我将添加一个完整的堆栈跟踪和一些更多的上下文。 Storm版本-9.3 Storm-Kafka版本-9.3 Kafka版本-0.8.2-beta 堆栈跟踪: Spout代码(注意,出于调试目的,我使用的是一个静态定义的分区映射,只有一个代理):

  • 因此,如果您使用基于JUnit的单元测试,是否建议您运行一个小型模拟拓扑(?)并测试该拓扑下的(或)的隐含契约?或者,是否可以使用JUnit,但这意味着我们必须仔细模拟Bolt的生命周期(创建它、调用、嘲弄等)?在这种情况下,被测类(螺栓/喷口)有哪些一般的测试点需要考虑? 其他开发人员在创建正确的单元测试方面做了什么? 我注意到有一个拓扑测试API(参见:https://github.com/x