2015-11-02 153 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

代码在您描述的方式中工作得很好。随意玩这个示例项目来创建一个可重现的案例。那我再看看 –