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

如何用Guice实现全局状态?

班展
2023-03-14

我想创建一个全局状态(数据对象,而不是服务对象)。

我创建了类MyDataObject

我想避免常规的全局状态,

但是,所有的教程都展示了如何为服务对象设置一个DI,并注册到接口。

如何根据需要使用Guice注入?

编辑

我试过:

公共类AppInjector扩展了AbstractModule{

@Override
protected void configure() {
    bind(E2eResult.class).toInstance(new E2eResult());
}
    @Test
    public void sendSearchRequest() throws Exception {

...
e2eResult = injector.getInstance(E2eResult.class);

        timerUtils.setTimeOut(criticalBlockTimeOutMilli);
        timerUtils.startStopWatch();

...

        long timeElapsed = timerUtils.stopStopWatch();
        e2eResult.runTime = timeElapsed;


...
    }
    public static void main(String... args) throws ClassNotFoundException, IOException {

        Injector injector = Guice.createInjector(new AppInjector());
        Result result = runTest(classAndMethod);
        E2eResult e2eResult = injector.getInstance(E2eResult.class);
}

但是我看到main中没有新的long值。

共有1个答案

萧升
2023-03-14

要注入GlobalState类,您应该首先创建它的一个实例(根据需要设置它),然后将class绑定到instance:

bind(GlobalState.class)
    .toInstance(globalState);

GlobalState可以在您的“模块”中创建和配置,您可以在这里了解更多信息:

https://github.com/google/guice/wiki/gettingstarted

 类似资料:
  • 我上了如下的课,效果很好 现在,我没有直接使用EmpService,而是创建了一个接口,EmpService实现了该接口,如下所示。 所以现在我的资源类必须使用接口,但我不确定如何引用它必须使用的实现。 我看到了这个,我不确定我的绑定应该去哪里。(这是我第一个与Guice相关的项目,所以我是一个完全的新手)。 这就是“未绑定com.api.EmpService的实现”出现的错误这完全可以理解,但不

  • 问题内容: 可以说我有一个叫做Guice服务的服务,这是它的构造函数 我的代码曾经使用枚举创建它 而且我必须在某处进行工厂实施。像这样 现在,我想使用Guice,我想我想使用FactoryModuleBuilder。 如果我对IPayment的了解不止一种,该怎么办? (例如,CardPayment,CashPayment) 适用于一个 .implement(IPayment.class, Cas

  • 本文向大家介绍如何实现Flex布局?相关面试题,主要包含被问及如何实现Flex布局?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 文章链接: http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html?utm_source=tuicool(语法篇) 简单的分为容器属性和元素属性 容器的属性: flex-direction:决定主轴的方

  • 本文向大家介绍flex布局如何实现?相关面试题,主要包含被问及flex布局如何实现?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: flex 是 Flexible Box 的缩写,意为"弹性布局"。指定容器display: flex即可。 容器有以下属性:flex-direction,flex-wrap,flex-flow,justify-content,align-items,align

  • 问题内容: 我正在学习Google Guice。您知道如何解决“机器人腿”问题吗?让我用一个例子解释一下。 假设我有一个叫做的类: 该接口有两种实现: 我的模块是这样实现的: 好吧,我想知道这是否可能: 是否存在一些让我做到这一点的注释或绑定,让我对like这样的成员进行注释,这有助于Guice知道应该向内部注入实现? 编辑: 感谢丹尼尔·马丁(Daniel Martin)在他的评论中给我们提供了