我正在尝试理解一段代码并且不理解CDI BeanManager的文档
Bean解析(设置> bean) 将不明确的依赖项解析规则应用于一组bean。
什么是不明确的依赖解析规则? CDI如何将Set<Bean> beans
减少为单个Bean?
我遇到了一个小问题,我想按照确切的类型查找bean,但不知道该怎么做:
Set<Bean<?>> beans = bm.getBeans(com.pkg.MyClass.class, annotations);
Bean<?> bean = bm.resolve(beans);
将找到我所有类型为com.pkg.MyClass
的bean - 确切的实现和任何子项。如果CDI中只有儿童,那么它将返回其中一个孩子。但是,我只想找到确切的com.pkg.MyClass
bean。如果没有确切的bean不存在,我想返回null或抛出异常。
如何告诉bean管理器在按类名搜索bean时我只想要完全匹配?
答案 0 :(得分:2)
通常,为了执行此操作,您将使用@Typed
注释实际实现,并仅指定该类型。另请参阅https://docs.jboss.org/cdi/api/1.0/javax/enterprise/inject/Typed.html