java - 通过通用接口(interface)将 EJB 注入(inject)列表

标签 java jakarta-ee dependency-injection ejb jndi

我想自动查找 EJB 实例并将其从 EJB 容器注入(inject)到列表中。示例:

@EJBs
List<MyCommonInterface> beans;

List<MyCommonInterface> beans;

public MyClass() {
    beans = (List<MyCommonInterface>) context.findBeansByInterface(MyCommonInterface.class);
}

这可能吗?

最佳答案

通过 JEE6,您可以使用实例 http://docs.oracle.com/javaee/6/api/javax/enterprise/inject/Instance.html

这样您就可以使用注入(inject)的上下文,例如

@Inject
private Instance<ICommon> ejbs;

你可以迭代它:

    for(ICommon c : ejbs)
        c.doSomeThing();

这里有一个类似的 iface 示例

  public interface ICommon {
      void doSomeThing();   
  }

我在 @Singleton 中使用 SLSB 和 SFSB 对其进行了测试。

关于java - 通过通用接口(interface)将 EJB 注入(inject)列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21575365/

相关文章:

dependency-injection - 是否存在初始化通过 DI 容器创建的对象的模式

java - 未调用 SpringBoot CommandLineRunner run() 方法

jakarta-ee - 谷歌缓存可以在集群环境中工作吗

java - 嵌套事务和 EJBContext 的 setRollbackOnly()

java - Weblogic 中的 JSTL 支持

dependency-injection - 为什么 Guice 找不到我的 List<Interface> 绑定(bind)?

java - 如何限制 C++ 或 JAVA 中类的实例数?

java - 带 lambda 表达式的 PriorityQueue<Integer>

java - 无法从数据库获取关联对象

spring - @Autowired 验证器内的 DAO