HK2 InstantiationService嵌套注入
HK2 InstantiationService nested inject
我正在使用 hk2 作为 CDI 引擎。
我有 2 个嵌套注入,如下面的代码所示:
public class Root {
@Inject
Son son;
...
}
public class Son {
@Inject
GrandSon gs; //should i put it here?
...
}
public class GrandSon {
...
}
这些是工厂 classes:
public class SonFactory implements Factory<Son>{
@Inject
InstantionService is;
@Inject
GrandSon gs; //should i put it here?
public Son provide(){
is.getInstantiationData()
return sonImpl;
}
public dispose(Son instance){
// destroy
}
}
public GrandsonFactory implements Factory <GrandSon>{
@Inject
InstantionService is
public GrandSon provide(){
is.getInstantiationData()
return sonImple;
}
public dispose(GrandSon instance){
// destroy
}
}
我将两个工厂绑定为:
bindFactory(SonFactory.class).to(Son.class).in(RequestScoped.class)
bindFactory(大SonFactory.class).to(大Son.class).in(RequestScoped.class)
现在我只想使用 InstantionService.getInstantiationData() 从 GrandSon class 中的调用 parent 获取描述符数据。特别是我需要回到呼叫根 class 检查被注射者 parent。我可以从 Son class 的 factory.provide 方法获取数据,但我无法从 grandSon class 获取有效的 getInstantiationdata()。
我的代码有什么问题?
这似乎是 HK2 中的一个错误。我输入了以下 JIRA:
Nested Factory Instantation Service Issue
修复此错误后,我将更新此答案。我已经检查了一个失败的测试来证明这个问题
我正在使用 hk2 作为 CDI 引擎。 我有 2 个嵌套注入,如下面的代码所示:
public class Root {
@Inject
Son son;
...
}
public class Son {
@Inject
GrandSon gs; //should i put it here?
...
}
public class GrandSon {
...
}
这些是工厂 classes:
public class SonFactory implements Factory<Son>{
@Inject
InstantionService is;
@Inject
GrandSon gs; //should i put it here?
public Son provide(){
is.getInstantiationData()
return sonImpl;
}
public dispose(Son instance){
// destroy
}
}
public GrandsonFactory implements Factory <GrandSon>{
@Inject
InstantionService is
public GrandSon provide(){
is.getInstantiationData()
return sonImple;
}
public dispose(GrandSon instance){
// destroy
}
}
我将两个工厂绑定为: bindFactory(SonFactory.class).to(Son.class).in(RequestScoped.class) bindFactory(大SonFactory.class).to(大Son.class).in(RequestScoped.class)
现在我只想使用 InstantionService.getInstantiationData() 从 GrandSon class 中的调用 parent 获取描述符数据。特别是我需要回到呼叫根 class 检查被注射者 parent。我可以从 Son class 的 factory.provide 方法获取数据,但我无法从 grandSon class 获取有效的 getInstantiationdata()。 我的代码有什么问题?
这似乎是 HK2 中的一个错误。我输入了以下 JIRA:
Nested Factory Instantation Service Issue
修复此错误后,我将更新此答案。我已经检查了一个失败的测试来证明这个问题