Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaEE7:按名称模式注入bean的所有实例_Java_Jakarta Ee_Dependency Injection_Java Ee 7 - Fatal编程技术网

JavaEE7:按名称模式注入bean的所有实例

JavaEE7:按名称模式注入bean的所有实例,java,jakarta-ee,dependency-injection,java-ee-7,Java,Jakarta Ee,Dependency Injection,Java Ee 7,我想获得类名以Cache结尾的所有bean实例 这在JavaEE7中可能吗?如果是,如何注射?您可以注射: @Inject BeanManager BeanManager; 然后,您可以从CDI容器中访问。如果您的bean没有公共接口,您可以使用: 使用producer方法设置,该方法从BeanManager检索给定类型的bean,并根据类名对其进行过滤 @Produces public List<MyInterface> produceMyInterfaces() {

我想获得类名以
Cache
结尾的所有bean实例

这在JavaEE7中可能吗?如果是,如何注射?

您可以注射:

@Inject
BeanManager BeanManager;
然后,您可以从CDI容器中访问。如果您的bean没有公共接口,您可以使用:


使用producer方法设置,该方法从
BeanManager
检索给定类型的bean,并根据类名对其进行过滤

@Produces  
public List<MyInterface> produceMyInterfaces() {  
    return beanManager.getBeans(MyInterface.class).stream().filter(e -> e.getClass().getSimpleName().contains("something").collect(Collectors.toList());  
}  
@products
公共列表produceMyInterfaces(){
返回beanManager.getBeans(MyInterface.class).stream().filter(e->e.getClass().getSimpleName().contains(“某物”).collect(Collectors.toList());
}