Spring 注入中的循环依赖 - 这是糟糕的设计吗?

Circular dependency in Spring injection - Is this bad design?

我遇到了以下问题:

我正尝试按如下方式创建 bean:

@Bean
public abc createABC() {
    return new ABC(--, def(),--);
}

`

@Bean
public DEF def() {
    return new DEF(--, createABC(),--
}

任何解决此问题的建议,而无需更改为基于 setter 的注入。它是糟糕设计的标志吗?在我的情况下,这种依赖是必须的。请提供您对此的看法

it the indicative of bad design?

当然可以。如果 ABC 依赖于 DEFDEF 依赖于 ABC,则间接意味着你的代码没有被正确组织。这种循环依赖通常表明您没有遵守单一职责原则

ABCDEF 和 vice-versa 应该有的逻辑。您应该重构这些 类,使 ABC 依赖于 DEFDEF 依赖于 ABC,但不能同时依赖于两者。