[英]Problems creating a Java Bean inheritance structure
我試圖用Java Beans創建我認為是簡單繼承結構的東西(我以前從未使用過它們)。 給我的代碼具有定義為的基類
public class CreateDialogFactory {
priavte static beanId;
protected CreateDialogFactory() { }
protected CreateDialogFactory(String beanId) { this.beanId = beanId; }
public static CreateScenarioDialog getInstace() {
return SpringHelper.getInstance(beanId, CreateScenarioDialogFactory.class);
}
}
從該類繼承的是兩個定義的類:
@Component(ACreateScenarioDialogFactory.BEAN_ID)
public class ACreateScenarioDialogFactory extends CreateDialogFactory {
private static String BEAN_ID = "create-a-scenario";
protected ACreateScenarioDialogFactory() {
super(BEAN_ID);
}
}
和
@Component(BCreateScenarioDialogFactory.BEAN_ID)
public class BCreateScenarioDialogFactory extends CreateDialogFactory {
private static String BEAN_ID = "create-b-scenario";
protected BCreateScenarioDialogFactory() {
super(BEAN_ID);
}
}
我的xml規格非常簡單-
我的問題是,當我編譯時, No unique bean of type [abCreateDialogFactory] is defined: expected single matching bean but found 2: [create-a-scenario, create-b-scenario]
即使當我注釋掉xml規范中的bean定義時。
Spring中的控制反轉旨在與接口一起使用。 在您的代碼中,層次結構的基類在生成bean時被視為類型,因此SpringHelper.getInstance(beanId, CreateScenarioDialogFactory.class)
不能在ACreateScenarioDialogFactory
或BCreateScenarioDialogFactory
選擇,因為它們是同一類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.