Java 注入实现相同接口的bean列表
假设我有以下接口 公共接口处理程序{ 无效Handleo对象; } 和实现 公共类PrintHandler实现了{ 空柄物体{ System.out.printlno; } } 公共类YetAnotherHandler实现处理程序{ 空柄物体{ //做点什么 } } 我想将所有处理程序子类注入到某个类中 公开课Foo{ 私有列表处理程序; }Java 注入实现相同接口的bean列表,java,cdi,quarkus,Java,Cdi,Quarkus,假设我有以下接口 公共接口处理程序{ 无效Handleo对象; } 和实现 公共类PrintHandler实现了{ 空柄物体{ System.out.printlno; } } 公共类YetAnotherHandler实现处理程序{ 空柄物体{ //做点什么 } } 我想将所有处理程序子类注入到某个类中 公开课Foo{ 私有列表处理程序; } 如何使用Quarkus实现这一点?所有实现都需要标记为@ApplicationScope,如下所示: @ApplicationScoped public
如何使用Quarkus实现这一点?所有实现都需要标记为@ApplicationScope,如下所示:
@ApplicationScoped
public class PrintHandler implements Handler {
public String handle() {
return "PrintHandler";
}
}
在要注入所有实现的类中,使用
@Inject
Instance<Handler> handlers;
需要为@ApplicationScope标记所有实现,如下所示:
@ApplicationScoped
public class PrintHandler implements Handler {
public String handle() {
return "PrintHandler";
}
}
在要注入所有实现的类中,使用
@Inject
Instance<Handler> handlers;
您可以@InjectInstance,其中Instance实现Iterable。请注意,处理程序实现应该有一个bean定义注释,例如@ApplicationScoped。您可以@Inject Instance,其中Instance实现Iterable。请注意,处理程序实现应该有一个bean定义注释,例如@ApplicationScoped。