假设我有一个汽车课程。在我的代码中我想创建 10 辆汽车。汽车类有一些@Inject
带注释的依赖项。
做到这一点的最佳方法是什么?
CDI 有一个Provider
我可以用它来创建汽车的界面:
@Inject Provider<Car> carProvider;
public void businessMethod(){
Car car = carProvider.get();
}
不幸的是,如果我没有的话,这不起作用CarFactory
有一个方法@Produces
创建汽车的注释。尽管它反映了现实世界,没有工厂我就无法制造汽车,但我宁愿不为所有东西编写工厂。我只希望 CDI 容器能够像任何其他 bean 一样创建我的汽车。
您建议我如何创建这些汽车?
只需使用javax.enterprise.inject.Instance
接口代替。
像这样:
public class Bean {
private Instance<Car> carInstances;
@Inject
Bean(@Any Instance<Car> carInstances){
this.carInstances = carInstances;
}
public void use(){
Car newCar = carInstances.get();
// Do stuff with car ...
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)