【问题标题】:Spring Dependency Injection vs. Writing to InterfacesSpring 依赖注入与写入接口
【发布时间】:2013-11-07 20:56:49
【问题描述】:

我有几个关于 Java 中的 Spring 范式的问题:

1) 假设我有一个应用程序,我将所有内容都写入接口,然后在最后一刻,在我实际的 main() 或配置文件中的某个地方,我定义了要使用的特定类。我是否实现了与 Spring 相同的目标?在那种情况下,为什么我需要 Spring 的 DI?编写接口并将细节留到最后一刻,是程序员几十年来一直在使用的标准做法。

2) 如果反对意见是在某个(最终)时间点新建对象,则必须在我的界面驱动应用程序中的某个时间点完成此操作,但这有什么问题?有一个“新”语句如何使一个类无法使用或无法测试 - 或者它只是可读性/透明度?

3) 人们说以声明方式使用对象“摆脱了依赖关系”。但是我们仍然有一个依赖:在编译代码之前,我们必须导入一个新类,即使我们没有“新建”它?

【问题讨论】:

  • 这是个好问题!

标签: java spring dependencies inversion-of-control code-injection


【解决方案1】:

有些人,比如我,更喜欢使用 Spring XML 配置依赖关系和接口实现的连接,而不是硬编码它们。所有的连接都在一个地方(假设您没有使用注释),我也可以说修改 XML 文件的配置比修改代码更容易。如果需要更改某些内容,您还可以在应用程序运行之间调整 Spring 文件。
Spring 是一个很好的框架,已经存在了一段时间。我发现它非常擅长依赖注入(DI)。虽然您在 #1 中的方法没有任何“错误”,但我认为使用 Spring 将为您提供更强大的实现。为什么要重新发明轮子?

【讨论】:

    猜你喜欢
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 2023-04-06
    • 2023-03-23
    • 2017-06-10
    • 1970-01-01
    相关资源
    最近更新 更多