java – 如何在CDI中快速创建实例

前端之家收集整理的这篇文章主要介绍了java – 如何在CDI中快速创建实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们假设我有一个汽车课.在我的代码中,我要创建10辆车. Car类有一些@Inject注释的依赖项.这样做最好的办法是什么? @H_403_2@CDI有一个提供者界面,可以用来创建汽车:

  1. @Inject Provider<Car> carProvider;
  2. public void businessMethod(){
  3. Car car = carProvider.get();
  4. }
@H_403_2@不幸的是,如果我没有CarFactory有一个方法与@Produces注释创建汽车不工作.尽管反映出无法在没有工厂制造汽车的现实世界,我宁可不为任何一个人写工厂.我只想要CDI容器像任何其他bean一样创建我的车.你怎么推荐我创造这些汽车?

解决方法

只需使用javax.enterprise.inject.Instance接口. @H_403_2@喜欢这个:

  1. public class Bean {
  2.  
  3. private Instance<Car> carInstances;
  4.  
  5. @Inject
  6. Bean(@Any Instance<Car> carInstances){
  7. this.carInstances = carInstances;
  8. }
  9.  
  10. public void use(){
  11. Car newCar = carInstances.get();
  12. // Do stuff with car ...
  13. }
  14.  
  15. }

猜你在找的Java相关文章