加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:32:11 所属栏目:Java 来源:网络整理
导读:我们假设我有一个汽车课.在我的代码中,我要创建10辆车. Car类有一些@Inject注释的依赖项.这样做最好的办法是什么? CDI有一个提供者界面,可以用来创建汽车: @Inject ProviderCar carProvider;public void businessMethod(){ Car car = carProvider.get();}
我们假设我有一个汽车课.在我的代码中,我要创建10辆车. Car类有一些@Inject注释的依赖项.这样做最好的办法是什么?

CDI有一个提供者界面,可以用来创建汽车:

@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 ...
    }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读