我们假设我有一个汽车课.在我的代码中,我要创建10辆车. Car类有一些@Inject注释的依赖项.这样做最好的办法是什么?
@H_403_2@CDI有一个提供者界面,可以用来创建汽车:
@H_403_2@不幸的是,如果我没有CarFactory有一个方法与@Produces注释创建汽车不工作.尽管反映出无法在没有工厂制造汽车的现实世界,我宁可不为任何一个人写工厂.我只想要CDI容器像任何其他bean一样创建我的车.你怎么推荐我创造这些汽车?
- @Inject Provider<Car> carProvider;
- public void businessMethod(){
- Car car = carProvider.get();
- }
解决方法
只需使用javax.enterprise.inject.Instance接口.
@H_403_2@喜欢这个:
- 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 ...
- }
- }