Springboot 循环依赖问题处理


错误信息

The dependencies of some of the beans in the application context form a cycle

错误原因

循环依赖导致

解决方法

关于循环依赖网上有很多博客做出各种解释,balabala一大堆,全是拷贝复制,各种扯源码缓存什么的,让人看了头大,却并没有给出实际有效的解决方法。关于原理此处不做过多说明,有兴趣的可以自行了解。此处直接给出解决方案

1.Field注入

使用@[email protected]注解

spring framerwork 4.0以后版本不推荐使用属性注入,改为推荐构造器注入和setter注入。

2.构造器注入

在构造函数上使用@Autowired注解

3.setter注入

使用set方法注入

推荐方法

本人多使用lombok工具,此处推荐使用lombok进行处理

在类上使用@RequiredArgsConstructor对 final 修饰参数使用构造函数注入

循环依赖的的参数上使用@Setter单独注入

@RequiredArgsConstructor
@Service
public class XXService implements IXXService {
    
    private final XXDao XXDao;
    @Setter([email protected])
    private IXXXService xxxService;
    
    ...
}

声明:Wayen|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Springboot 循环依赖问题处理


-当你感到最无助困难的时候,那就是离成功最近的时候。-Martin Frohm