gpt4 book ai didi

java - 是否可以使用 Guice 注入(inject)请求注入(inject)的类?

转载 作者:行者123 更新时间:2023-12-04 00:33:04 24 4
gpt4 key购买 nike

我希望对象的注入(inject)实例知道请求其注入(inject)的类的名称。我知道这违反了依赖注入(inject)的整个概念,但它似乎是支持有用日志记录的有效用例。 Guice 可以做到这一点吗?

例子:

class InjectorAware {
@Inject
public InjectorAware(Class injectorClass){
System.out.println("I was injected into a "+injectorClass.getCanonicalName());
}
}

class NeedsInjectorAwareField {
@Inject InjectorAware injectorAware;
}

当 NeedsInjectorAwareField 被注入(inject)时,控制台会打印“我被注入(inject)到一个 somepackage.NeedsInjectorAwareField”

最佳答案

Guice 实际上已经injects为您准备的 java.util.logging.Logger,它已使用注入(inject)类的名称进行了自定义。不确定它是如何完成的,但您可以借用从 Guice 源代码中使用的技术...或者直接使用 Logger。

更新:this似乎是负责此行为的 Guice 源点。您或许能够以某种方式借用该技术,我不确定。

关于java - 是否可以使用 Guice 注入(inject)请求注入(inject)的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9027766/

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