如何在 CDI 中动态创建实例

2024-04-20

假设我有一个汽车课程。在我的代码中我想创建 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(使用前将#替换为@)

如何在 CDI 中动态创建实例 的相关文章

  • 在Java中将*s打印为三角形?

    我在 Java 课程中的作业是制作 3 个三角形 一份左对齐 一份右对齐 一份居中 我必须为什么类型的三角形制作一个菜单 然后输入需要多少行 三角形必须看起来像这样 到目前为止 我能够完成左对齐的三角形 但我似乎无法获得其他两个 我尝试用谷
  • 如果列名不同,则一对多休眠连接

    我有三个具有以下结构的表 合同 gt Contract id 主要 customer company id Vendor company id 公司 gt Company id 主要 创建日期 创建者 Company Timeline gt
  • android.view.InflateException:二进制 XML 文件行 #11:膨胀类 ImageView 时出错

    我只是尝试制作一个小的 android java xml 应用程序来计算游戏的分数 它给了我这个错误 Error inflateing class ImageView 有人知道解决方案吗 我实际上搜索了 ppl 说添加这个 android
  • 单元测试组合服务方法

    我正在为一个类编写 junit 单元测试 该类使用以下方法实现公开的接口 public Set
  • 如何提取文件 jre-9/lib/modules?

    In JRE 9 lib目录 至少在 Windows 上 有一个名为modules其大小约为107 MB 是否可以提取该文件或在其中列出 java 模块 我可以看到一个名为jmod可以在jdk 9 bin jmod exe 但那是为了阅读
  • JavaFX 2.0 FXML 子窗口

    经过多次搜索我发现了这个问题如何创建 javafx 2 0 应用程序 MDI https stackoverflow com questions 10915388 how to create a javafx 2 0 application
  • 迁移到Java 9或更高版本时是否需要切换到模块?

    我们目前正在从 Java 8 迁移到 Java 11 但是 升级我们的服务并没有我们预期的那么痛苦 我们基本上只需要更改我们的版本号build gradle文件和服务都顺利启动并运行 我们升级了库以及使用这些库的 微 服务 到目前为止没有问
  • 如何将现有的 SQLite3 数据库导入 Room?

    好吧 我在桌面上使用 SQLite3 创建了一个只需要读取的某些信息的数据库 我正在制作的应用程序不需要在此表中插入或删除信息 我在 Room 数据库层上做了相当多的谷歌搜索 所有文档都需要在构建应用程序时在 Room 中创建一个新的数据库
  • javax.persistence.RollbackException:提交事务时出错],根本原因是 java.lang.StackOverflowError:null

    我有一个使用 Spring Data REST 框架的 Spring Boot API 从 spring boot starter parent 2 1 0 RELEASE 继承的依赖项 我正在尝试执行 PUT 或 PATCH 请求来更新实
  • 关于Java泛型的一些问题

    假设我有以下接口和实现类 interface Foo
  • Java 中的 ExecuteUpdate sql 语句不起作用

    我正在学习如何将 SQL 与 Java 结合使用 我已成功安装 JDBC 驱动程序 并且能够从数据库读取记录并将其打印在屏幕上 我的问题发生在尝试执行更新或插入语句时 没有任何反应 这是我的代码 问题所在的方法 public static
  • 更改 JComboBox 中滚动条的大小

    有谁知道如何手动更改 jComboBox 中的滚动条大小 我已经尝试了一大堆东西 但没有任何效果 好吧 我明白了 您可以实现 PopUpMenuListener 并使用它 public void popupMenuWillBecomeVis
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • JAXB 编组器无参数默认构造函数

    我想从 java 库中编组一个 java 对象 当使用 JAXB marschaller 编组 java 对象时 我遇到了一个问题 A 类没有无参数默认构造函数 我使用Java Decompiler来检查类的实现 它是这样的 public
  • Java8:流映射同一流中的两个属性

    我有课Model带有以下签名 class Model private String stringA private String stringB public Model String stringA String stringB this
  • Android项目中使用java获取电脑的IP地址

    我在用ksoap2 android http code google com p ksoap2 android 我需要使用java获取IP地址 这样我就不必每次都手动输入它 我所说的 IP 地址是指 例如 如果我这样做ipconfig使用命
  • Java:一个函数有多种返回类型...可以使用泛型吗?

    为了简单起见 我有一些程序 如下所示 public String fetchValueAsString String key public DateTime fetchValueAsDateTime String key 我想要类似的东西
  • Java String ReplaceAll 方法给出非法重复错误?

    我有一个字符串 当我尝试运行时replaceAll方法 我收到这个奇怪的错误 String str something op str str replaceAll o n it works fine str str replaceAll n
  • @Embeddable 中的 @GenerateValue

    我已将实体的 id 分离到一个单独的 Embeddable 类中 该实体如下 Entity Table name users public class Users EmbeddedId private Users pk id private
  • 使用 AmazonSNSClient 发送短信时的授权

    aws 官方文档如何发送短信 http docs aws amazon com sns latest dg sms publish to phone html使用 java 中的 aws SDK 非常简单 但是 当发送如底部示例所示的消息时

随机推荐

  • 通过类名 JQuery 获取 ID

    嗨 这是一个jquery问题 假设我有这个
  • Windows 8 Internet Explorer 10 仍然有怪异模式吗?

    我想知道 Windows 8 上的 IE10 是否仍然有 Quirksmode 因为我们有一个 Web 应用程序 仍然 可以与 quirksmode 配合使用 我想知道它是否仍然可以在 Windows 8 上运行 IE10 有两种怪异模式
  • NotificationCompat v7 不适用于 Oreo 及更高版本的操作系统

    我遇到了麻烦NotificationCompat v7 on android 8 9 在所有 Android 版本上显示通知的最佳方式是什么 调试日志 android app RemoteServiceException Bad notif
  • 在 Android Studio 中重用模块

    每当我将 android 库项目作为模块添加到 Android Studio 项目时 源代码都会被复制到 Android Studio 项目文件夹中 有没有办法像在 eclipse 中一样解决这个问题 其中只有一个库项目副本 任何多个项目都
  • 如何从嵌套母版页中的内容页面访问主母版页中的控件

    我有 2 个嵌套的母版页 这是主母版页代码 例如
  • http handler 接口中 bool IsReusable 的意义

    当编写 http 处理程序 模块时 需要实现一个名为 的接口成员bool 是否可重用 https learn microsoft com en us dotnet api system web ihttphandler isreusable
  • jQuery:如何用逗号对一列数字求和?

    我使用了网上找到的以下功能 效果非常好 然而 当我的用户后来要求在数字中包含逗号时 它就崩溃了 它仅添加逗号前面的数字 这是函数 function sumOfColumns tableID columnIndex hasHeader var
  • 空白链接在同一窗口中打开 - 为什么以及如何修复它? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有四个链
  • 类型错误:无法读取 Jasmine 中未定义的属性(读取“订阅”)

    我正在尝试为以下方法编写测试用例 subscriptionPackages this managePackageService getPackages subscribe response gt this packagePlan respo
  • 该应用程序的开发人员尚未正确设置该应用程序以进行 Facebook 登录?

    我正在尝试在我的脚本中使用 Facebook 进行登录 我已经完成了所有操作 但是当我尝试使用 Facebook 帐户登录时 我从 Facebook 收到此错误 Error 应用程序未设置 此应用程序的开发人员尚未正确设置此应用程序以进行
  • std::vector 当 Foo 的某些成员是引用时

    只要有可能 我通常更喜欢使用引用而不是指针 在我看来 它使语法更清晰 在这种情况下 我有一堂课 class Foo public Foo Bar bar bar bar private Bar bar operator 对于这样的类 编译器
  • 在对数时间内找到未排序数组中的最小值

    是否有一种算法方法可以在对数时间 O logn 内找到未排序数组的最小值 或者只能在线性时间内实现 我不想并行 Thanks Michael 如果列表未排序 则您的搜索必须至少是线性的 每个项目你必须至少看一遍 因为任何你没看过的东西mig
  • 修复 npm 安装失败并显示错误代码 EINTEGRITY

    我在这里浏览了各种类似的帖子但无济于事 他们都得出了类似的解决方案npm cache verify or npm cache clear etc 我什至使用一切可能的方法完全删除 npm 和 node 并重新开始 我什至诉诸使用 force
  • 谷歌地图多边形 - 叠加

    我正在尝试在我的谷歌地图上实现 负 覆盖 类似于您在estately com 上获得的效果 基本上 我已经根据收集的 KML 数据成功绘制了地图多边形 当有多条路径时 它们绘制得很好 因此 在对我的示例进行建模时 首先 我从 Polygon
  • 如何将复选框绑定到Vuex存储?

    我有一个包含一些复选框的组件 我需要能够访问从 Vue 应用程序中的其他组件检查了哪些复选框 但我无法弄清楚 也无法在网上找到 如何将复选框正确连接到我的 Vuex 商店 将组件内的复选框连接到 Vuex 存储的正确方法是什么 以便它们的行
  • 如何确定使用哪种认证方式?

    我想知道 我如何确定正在使用哪种身份验证方法 例如 如果我的身份验证基于 FORMS 身份验证 而不是 WINDOWS 身份验证 我想执行代码 您可以使用配置管理器检查网络配置上的内容 ConfigurationManager GetSec
  • 停放正在使用的线程

    我正在尝试线程停放并决定构建某种服务 它是这样的 public class TestService private static final Logger logger LoggerFactory getLogger TestService
  • 如何使用引脚和选项卡像 Delphi IDE 一样进行拖动和停靠?

    我想让 拖放 和 停靠 在我的应用程序中像在 Delphi IDE 中一样工作 即能够在对象检查器 结构视图周围拖动并将它们停靠在合适的位置 我在将表单对接到 PageControl 方面取得了相当大的成功 但想知道是否有人知道如何让它与小
  • 如何更改 Hybris 站点地图 XML 中的本地主机 URL

    我正在尝试通过开箱即用的方式为我的 Hybris 站点创建一个 sitemap xml 并复制我的 site impex 中开箱即用商店中给出的 ImpEx 如何更改 Hybris 站点地图 XML 中的本地主机 URL 运行 cronjo
  • 如何在 CDI 中动态创建实例

    假设我有一个汽车课程 在我的代码中我想创建 10 辆汽车 汽车类有一些 Inject带注释的依赖项 做到这一点的最佳方法是什么 CDI 有一个Provider我可以用它来创建汽车的界面 Inject Provider