在部署第三方项目时,遇到了一个问题。在springboot项目运行时,报错:Error creating bean with name ‘mvcResourceUrlProvider’: Requested bean is currently in creation: Is there an unresolvable circular reference?
这是循环依赖报错,原因是由于构造器注入,所以遇到循环依赖就会导致报错,即依赖链形成了一个环路。因为要实现循环依赖就得在A调用B,B再调用A的时候,A提前放入singletonFactories三级缓存,否则A和B都没法实例化。而加入singletonFactories三级缓存的前提是执行了构造器,所以构造器注入的循环依赖没法解决,它重写了构造器。
解决方法有两种,1.采用setter方法注入。2.使用@lazy注解。