2015-11-02 149 views
0

我有四個彈簧配置類(用@Configuration註釋)。 配置類A定義豆其在配置類B和C. 配置d類進口其他三個配置類A,B和C.彈簧配置導入參考

A類

@Configuration 
public Class A { 

    @Bean 
    public MyBean bean1() { 
     return new Bean1(); 
    } 

    @Bean 
    public MyBean bean2() { 
     return new Bean2(); 
    } 

    @Bean 
    public MyBean bean3() { 
     return new Bean3(); 
    } 

} 

B類中使用

@Configuration 
public class B { 

    @Autowired 
    @Qualifier("bean1") 
    private MyBean bean1; 

    @Autowired 
    @Qualifier("bean2") 
    private MyBean bean2; 

    @Bean 
    public MyBeanCollector beanCollector() { 
     MyBeanCollector mbc = new MyBeanCollector(); 
     mbc.add(bean1); 
     mbc.add(bean2); 
     return mbc; 
    } 

} 

C類

@Configuration 
public class C { 

    @Autowired 
    @Qualifier("bean1") 
    private MyBean bean1; 

    @Autowired 
    @Qualifier("bean3") 
    private MyBean bean3; 

    @Bean 
    public MyAnotherBeanCollector anotherBeanCollector() { 
     MyAnotherBeanCollector mabc = new MyAnotherBeanCollector(); 
     mabc.add(bean1); 
     mabc.add(bean3); 
     return mabc; 
    } 

} 

類d

@Configuration 
@Import(A.class, B.class, C.class) 
public class D { 
} 

現在,我的問題是,我一直得到下面的異常在啓動時:

org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'beanCollector': Requested bean is currently in creation: Is there an unresolvable circular reference? at   
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.beforeSingletonCreation(DefaultSingletonBeanRegistry.java:327) 

我不知道爲什麼我不斷收到此錯誤信息。請幫忙。

+0

這是你想要解決的一些大學作業嗎? –

回答

0

創建了你的配置一個sample project - 工程確定

  1. 混帳克隆https://github.com/denis-zhdanov/spring-playground.git
  2. CD彈簧操場
  3. git的結帳如此33472688
  4. ./gradlew -PmainClass = org.denis。 test.spring.di.SpringStart執行
+0

謝謝丹尼斯。任何線索,什麼時候我可能會收到異常。我確定我的代碼中沒有循環依賴關係。 – Shailesh

+0

代碼在您描述的方式中工作得很好。隨意玩這個示例項目來創建一個可重現的案例。那我再看看 –