带有标准注释的java自定义注入
在不定义自定义注释的情况下,是否可以使用基于注入点计算的构造函数/工厂参数执行自定义注入
给定一个代码:
class Foo {
public Foo() {}
public Foo(java.lang.reflect.Field field) {}
}
class Bar {
@javax.inject.Inject Foo foo;
}
如何配置guice以使用Foo
(传递目标字段)的第二个构造函数而不修改Bar
我知道guice可以定制java注入。util。登录中。带有标准@Inject的记录器,但它似乎是硬编码的,并且使用内部api
# 1 楼答案
如果只想使用特定构造函数,可以使用constructor bindings:
如果需要更复杂的内容,则必须使用custom injections
# 2 楼答案
您可以使用注入提供者来实现这一点。见https://code.google.com/p/google-guice/wiki/ProviderBindings和https://code.google.com/p/google-guice/wiki/ProvidesMethods。您只需告诉Guice在绑定对象时如何实例化它
例如,在我的一个项目中,我尝试了以下方法:
我不知道这是否是你想要的,但我希望它会有帮助