gpt4 book ai didi

java - ServiceLoader + EJB注入(inject)

转载 作者:太空宇宙 更新时间:2023-11-04 06:46:21 26 4
gpt4 key购买 nike

我想知道是否可以将 ServiceLoader 与 EJB 以及来自 Java EE 6 的注入(inject)结合起来。

假设我有一个接口(interface) ServiceI,它可以由两个 EJB 无状态 bean BeanABeanB 实现。

如果我在 MEAT-INF/services 中注册这两个类,它们将以 Java SE 方式实例化,而不是由应用程序容器管理(就像使用 @Inject 时一样)。这意味着像 @Inject@PostConstruct 这样的注释将不会被解析。

是否有可能有像 ServiceLoader 这样的东西,它允许我通过 EJB bean 实现给定的接口(interface)并根据某些标准返回一个接口(interface)?

最佳答案

我找到了解决办法。

如果两个 bean 都实现 Service界面您可以执行以下操作:

@Inject
private javax.enterprise.inject.Instance.Instance<Service> services

services实现Iterator<Service>并允许循环遍历所有实现 Service 的 bean界面。

然后您可以根据某些标准选择其中一种实现,并且您将获得相当于 ServiceLoader 的实现。对于 EJB!

关于java - ServiceLoader + EJB注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23931645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com