Java 注入实现相同接口的bean列表

Java 注入实现相同接口的bean列表,java,cdi,quarkus,Java,Cdi,Quarkus,假设我有以下接口 公共接口处理程序{ 无效Handleo对象; } 和实现 公共类PrintHandler实现了{ 空柄物体{ System.out.printlno; } } 公共类YetAnotherHandler实现处理程序{ 空柄物体{ //做点什么 } } 我想将所有处理程序子类注入到某个类中 公开课Foo{ 私有列表处理程序; } 如何使用Quarkus实现这一点?所有实现都需要标记为@ApplicationScope,如下所示: @ApplicationScoped public

假设我有以下接口

公共接口处理程序{ 无效Handleo对象; } 和实现

公共类PrintHandler实现了{ 空柄物体{ System.out.printlno; } } 公共类YetAnotherHandler实现处理程序{ 空柄物体{ //做点什么 } } 我想将所有处理程序子类注入到某个类中

公开课Foo{ 私有列表处理程序; }
如何使用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。