从Guice模块定义中获取呼叫者的名称或引用

时间:2018-08-21 19:39:18

标签: java guice

我的谷歌搜索建议对此的答案是简单的“否”,但无论如何我都必须问。

我正在尝试向服务的重试策略中添加一些日志记录/度量标准,以便我们可以了解实际的真实世界重试和超时配置文件。我写了一个包装器/装饰器以放置在基础策略对象的顶部,但是问题当然是我们当前只是注入一个通用的RetryStrategy对象,并且我希望我的特定行为了解某些上下文;最少的是请求者的名字,这样我就可以发出一个度量标准,说某某客户在第k次重试后第n个毫秒后超时。

在Guice中是否可能是开箱即用或经过相对较轻的修改?

也就是说,我希望在模块文件中遵循以下内容:

@Provides
RetryStrategy getNewDefaultRetryStrategy() {
    RetryStrategy baseStrategy = getOldRetryStrategy();
    String clientName = NAME_OF_THING_WE_ARE_INJECTING_INTO; // this is the magic I want
    return new WrappedStrategy(baseStrategy, clientName);
}

0 个答案:

没有答案