Jakarta ee 使用CDI注入相同类型的所有bean
假设我们有一个包含类的包Jakarta ee 使用CDI注入相同类型的所有bean,jakarta-ee,interface,cdi,managed-bean,multiple-instances,Jakarta Ee,Interface,Cdi,Managed Bean,Multiple Instances,假设我们有一个包含类的包foos,它们都实现了一些IFoo 我们还有一个类,Baz,它包含一个数据成员,listwoolist。 是否有可能将所有这些IFoo类动态注入dublist 顺便问一下,这是一种常见的做法吗?(我不熟悉DI概念)使用javax.enterprise.inject.Instance接口动态获取Foo的所有实例: import javax.annotation.PostConstruct; import javax.enterprise.inject.Instance; i
foos
,它们都实现了一些IFoo
我们还有一个类,Baz
,它包含一个数据成员,listwoolist
。
是否有可能将所有这些IFoo
类动态注入dublist
顺便问一下,这是一种常见的做法吗?(我不熟悉DI概念)使用
javax.enterprise.inject.Instance
接口动态获取Foo
的所有实例:
import javax.annotation.PostConstruct;
import javax.enterprise.inject.Instance;
import javax.inject.Inject;
public class Baz {
@Inject
Instance<Foo> foos;
@PostConstruct
void init() {
for (Foo foo : foos) {
// ...
}
}
}
import javax.annotation.PostConstruct;
导入javax.enterprise.inject.Instance;
导入javax.inject.inject;
公共类Baz{
@注入
实例foos;
@施工后
void init(){
for(Foo-Foo:foos){
// ...
}
}
}
这完全有道理,例如,如果您想要合并多个服务提供商实现的结果。你会发现一个很好的学习例子
另见:
- ,
第5.6节。程序查找
bean discovery mode=“all”
?