我有一个由多个无状态 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/