问题:is there an unresolvable circular reference?
这是我在Jpa+Mybatis+多数据源结合的时候出现的问题,这个问题在SpringBoot项目启动的时候,能正常启动成功。但是当运行Service层的单元测试时,却运行不起来。
Google了一下有些Solution不用构造或者直接注入,但是不适合解决我的问题。
我使用的是找到循环注入的两个Bean,使用 @Lazy 注解标志其中一个为懒加载,这样则可避免循环引用。
Spring内部代码是当解析依赖注入关系的时候,先判断是不是 @Lazy Bean,如果是,则暂不解析该依赖,如果不是则会进行依赖Bean的查找,如果查找不到则会创建。但是在创建的时候,由于和需要注入的Bean有循环依赖关系,所以注入Bean创建失败。