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容器使用我希望它使用的構造函數?或者我以錯誤的方式思考這個問題?