java - 解析来自 ejb 代理的注释元数据

标签 java jakarta-ee cdi ejb-3.1

我有一个由多个无状态 bean 实现的业务接口(interface)。 每个实现在类级别都有一个具有唯一值的注释。 我使用 CDI 注入(inject)作为

@Any Instance<MyInterface> implementations;

我想查找基于值(与注释值匹配)的特定实现。 现在,由于所有实现都是 EJB,我获得了 EJB 代理,并且无法解析注释。请建议一种从代理解析注释元数据的方法。

除了上述场景中的 JNDI 查找之外,还有哪些其他方法来获取 EJB?

最佳答案

CDI 提供了一种无需解析注释即可选择实现的方法。

通过创建 MyAnnotationQualifier 类

extends AnnotationLiteral<MyAnnotation> implements MyAnnotation

现在在上面的 CDI 实现变量中选择我的 impl:

implementations.select(new MyQualifer("myValue"));

引用:

第 4.10 节: http://docs.jboss.org/weld/reference/2.0.3.Final/en-US/html/injection.html#lookup

关于java - 解析来自 ejb 代理的注释元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25098044/

相关文章:

java - Web.xml 安全约束不起作用

java - CDI 装饰另一个 JAR 中的服务

java - JAX-RS ExceptionMapper 异常拆分

java - 生成的序列以 1 开头,而不是在注释中设置的 1000

jsf - 是什么使 Bean 成为 CDI Bean?

java - 在 Weld 中使用@EJB 作为注入(inject)注解

java.lang.NoClassDefFoundError 调试,类未加载

java - 返回java中的main方法

java - Spring 自动配置与显式 @Enable* 配置声明

java - 为什么线程仍然不一致?