![](/img/trans.png)
[英]How to use guice injection to inject a Class in a class with static methods?
[英]Is it possible to inject the class requesting injection using Guice?
我想要一个对象的注入实例来知道请求注入的类的名称。 我知道这种违反了依赖注入的整个概念,但它似乎是支持有用日志记录的有效用例。 Guice可以实现吗?
例:
class InjectorAware {
@Inject
public InjectorAware(Class injectorClass){
System.out.println("I was injected into a "+injectorClass.getCanonicalName());
}
}
class NeedsInjectorAwareField {
@Inject InjectorAware injectorAware;
}
当NeedsInjectorAwareField被注入时,控制台将打印“我被注入somepackage.NeedsInjectorAwareField”
只使用Guice是不可能的,他们不会允许它。
我知道这是一个旧线程,但对于仍在尝试解决此问题的人,请查看https://github.com/raner/loginject
不确定你是否只能使用Guice来完成它,但是通过注入的构造函数使它工作并不会太难。
public interface InjectorAware {
void setInjector(Object injectingInstance);
}
public class Foo {
@Injected
public Foo(InjectorAware injectorAware){
injectorAware.setInjector(this);
}
}
那就是说。 不确定这是个好主意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.