0
我的应用程序中有一系列Processor Bean以及一个用于创建它们的工厂。用CDI替换工厂类
public abstract class Processor {
public Processor(String config) { .... }
public abstract void process() throws Exception;
}
public class Processor1 extends Processor {
public Processor1(String config) { super(config);..}
public void process() {....}
}
public Processor newProcessor(String impl, String config) {
// use reflection to create processor
}
我可以使用CDI来替换工厂类/方法吗?而是使用@Produces?
我尝试使用以下来迭代或选择我想要的实例。但Weld告诉我,allProcessorInstances.isUnsatisfied()== true。为了让Weld找到我的处理器子类,我必须创建默认的无参数ctor。
@Inject @Any Instance<Processor> allProcessorInstances;
有没有什么办法告诉CDI容器使用我希望它使用的构造函数?或者我以错误的方式思考这个问题?