gpt4 book ai didi

java - 依赖注入(inject)框架相对于经典依赖注入(inject)的优势是什么?

转载 作者:行者123 更新时间:2023-12-04 00:54:13 25 4
gpt4 key购买 nike

<分区>

我正在努力理解使用依赖注入(inject)框架的好处,在我的例子中是 Jakarta EE 上下文中的 CDI。

我想我明白了依赖注入(inject)的标准用例的意义——“分解”实例变量的具体实例通常是有益的,这样

public class Car {
private Tyre tyre;

public Car() {
tyre = new Tyre();
}
}

成为

public class Car {
private Tyre tyre;

public Car(Tyre tyre) {
this.tyre = tyre;
}
}

这样做的好处是现在我们可以插入任何我们喜欢的轮胎,这对于单元测试来说很方便,例如,因为 Tire 可能难以实例化。

现在我正在苦苦挣扎,而且我认为许多教程和问题都有些单薄,就是如何将其与依赖注入(inject)框架联系起来。当然,我的示例现在将显示为(使用 CDI 时)

public class Car {
private Tyre tyre;

@Inject
public Car(Tyre tyre) {
this.tyre = tyre;
}
}

但我不明白为什么我在这个阶段有任何收获。我知道你可以有多个 Tire 接口(interface)的实现,但是你必须在注入(inject)之上放置另一个注释来告诉框架插入了哪个轮胎......这比仅仅放置更好具体实现到签名中?

在总结了我目前的知识和想法之后,我的问题基本上是以下进程的一个婴儿示例看起来如何:

  1. 没有依赖注入(inject)但有一些问题的代码
  2. 使用依赖注入(inject)的相同代码,其中一些但不是所有问题都得到了解决
  3. 使用依赖注入(inject)框架(最好是 CDI)的相同代码,所有问题都已解决。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com