莎莎娱乐城电子游戏:什么是循环依赖?

从字面上来理解就是A依赖B的同时B也依赖了A,莎莎娱乐城电子游戏:就像上面这样,或者C依赖与自己本身。体现到代码层次就是这个样子

@Component
public?class?A?{
?//?A中注入了B
?@Autowired
?private?B?b;
}
---
@Component
public?class?A?{
?//?A中注入了B
?@Autowired
?private?B?b;
}
---
//?自己依赖自己
@Component
public?class?C?{
?//?C中注入了C
?@Autowired
?private?C?c;
}

虽然体现形式不一样,但是实际上都是循环依赖的问题。

什么情况下循环依赖可以被处理?

Spring解决循环依赖是有前置条件的

  • 出现循环依赖的Bean必须要是单例(singleton),如果依赖prototype则完全不会有此需求。

  • 依赖注入的方式不能全是构造器注入的方式(只能解决setter方法的循环依赖,这是错误的)

1. AB 均采用setter方法注入 结果OK

最后

感谢大家看到这里,文章有不足,欢迎大家指出;如果你觉得写得不错,那就给我一个赞吧。

也欢迎大家关注我的公众号:程序员麦冬,每天更新行业资讯!