2015-04-04 108 views
0

我有一個A類,它將初始化B類的一個新對象。這個B類的新實例有一些DAO。我想做DAO的依賴注入並提供我的自定義屬性並構建一個對象並獲得結果。但是,我得到使用構建模式的彈簧依賴注入

public class A { 

    public void setChildren() { 
     B b = new B.Builder().children(3).build(); 
    } 

} 

class B { 

    private PersonDAO personDAO; 
    private final int children; 

    private B(Builder buil) { 
     this.children = buil.children; 
    } 

    public static class Builder { 

     private int children; 

     public Builder children(int ch) { 
      this.children = ch; 
      return this; 
     } 

     public Builder build() { 
      return new B(this); 
     } 

    } 

    public void setPersonDao(PersonDao personDao) { 
     this.personDao = personDao; 
    } 

} 

我使用的春天依賴注入只是注入DAO。

<bean id="b" class="com.company.B"> 
    <property name="personDAO" ref="personDAO"/> 
</bean> 

首先,我要創建新的對象,每一次A型這就是爲什麼我在課堂上做A. new誰能告訴我如何做到這一點的春天?如何在這種情況下使用依賴注入與構建器模式?

回答

1

我得到沒有找到默認構造函數;嵌套的異常是 java.lang.NoSuchMethodException

由於在B類中不存在無參數默認構造函數。

我希望創建新的對象爲什麼我 類A.

做新的每一次形式的多數民衆贊成選擇彈簧bean scopes的bean原型範圍。