如何在不获取循环依赖项的情况下使用环回 4 实现链接模型



当模型具有循环依赖关系时,环回会报告错误。我正在寻找一种在不更改模型的情况下解决问题的方法。

如果一个模型与自身相关,则解决方案似乎正在使用Getter.fromValue((。但是,当关系通过更多模型循环时,此解决方案似乎并不那么有用。

具有三个模型 A、B 和 C 的示例。让我们假设 A 引用 B,B 引用 C,C 引用 A。那么在遵循 LB4 文档时,存储库将如下所示:

Repository A:
constructor(
@repository(BRepo) private bGetter: Getter<BRepo>,
...
Repository B:
constructor(
@repository(CRepo) private cGetter: Getter<CRepo>,
...
Repository C:
constructor(
@repository(ARepo) private aGetter: Getter<ARepo>,
...

但这会导致循环依赖失败。所以问题是 - 如何在不更改模型依赖项的情况下解决此问题。

解决方案似乎是将存储库绑定为单例

@bind({scope: BindingScope.SINGLETON})
export class Repository ...

默认绑定为瞬态,它会触发循环依赖项检查。

最新更新