我有一个由多个无状态Bean实现的业务接口。每个实现在类级别都有一个具有唯一值的注释。我使用CDI注射作为
@Any Instance<MyInterface> implementations;
我想查找一个基于值的特定实现(该实现与注释值匹配)。现在,由于所有实现都是EJB,因此我获得了EJB代理并且无法解析注释。请提出一种从代理解析批注元数据的方法。
在上述情况下,除了JNDI之外,还有什么其他方法来获取EJB?
CDI提供了一种无需解析注释即可选择实现的方法。
通过创建MyAnnotationQualifier类
extends AnnotationLiteral<MyAnnotation> implements MyAnnotation
现在,在上方的CDI实现变量中,将我的展示选择为:
implementations.select(new MyQualifer("myValue"));
参考:
第4.10节:http : //docs.jboss.org/weld/reference/2.0.3.Final/zh-CN/html/injection.html#lookup
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句