结论:
为了解决循环依赖问题,一劳永逸的方法,在开发时保持以下规则
1.对于被spring管理的类,即被service,controller,mapper,compennet,configuration注释的类 禁用@RequiredArgsConstructor@RequiredAllArgsConstructor,只保留它的无参构造
2.满足1的前提下,成员变量一律用@AutoWire注入而不用@Resource,@Resource也可能导致报错
当然如果你要暂时解决问题,你可以在报循环依赖的类上把它改为只有无参构造,成员变量全部autowire就可以解决问题,如果还报错,那肯定换了一个类报错,就继续对这个类,改成无参+autowire
springboottest在以springboot方式启动的时候,极有可能报循环依赖错误,无法解决,原因是springboot已经默默地帮我们解决了自动注入导致的循环依赖,但是springboottest以springboot方式启动并不等同于springboot启动,它不会帮你默默解决这个问题