Java 依赖注入:何时使用解释

Java 依赖注入:何时使用解释,java,spring,dependency-injection,Java,Spring,Dependency Injection,我已经阅读了使用(不使用)DI的原因(参见下面的原因),并提出了一些问题 依赖项注入在以下情况下有效: 您需要将配置数据注入到一个或多个组件中 您需要将相同的依赖项注入到多个组件中 您需要为同一依赖项注入不同的实现 您需要在不同的配置中注入相同的实现 您需要容器提供的一些服务 依赖项注入在以下情况下无效: 您永远不需要不同的实现 您永远不需要不同的配置 问题: 我恐怕不能全部理解,所以如果我错了,希望你能纠正我 我不明白。这是关于.properties文件的,还是我可以对多个bean应用相同

我已经阅读了使用(不使用)DI的原因(参见下面的原因),并提出了一些问题

依赖项注入在以下情况下有效:

  • 您需要将配置数据注入到一个或多个组件中
  • 您需要将相同的依赖项注入到多个组件中
  • 您需要为同一依赖项注入不同的实现
  • 您需要在不同的配置中注入相同的实现
  • 您需要容器提供的一些服务
  • 依赖项注入在以下情况下无效:

    • 您永远不需要不同的实现
    • 您永远不需要不同的配置
    问题:

    我恐怕不能全部理解,所以如果我错了,希望你能纠正我

  • 我不明白。这是关于.properties文件的,还是我可以对多个bean应用相同的xml配置?
  • 我很清楚
  • 我很清楚
  • 我不明白。请举例。
  • 我很清楚
  • p.S.您不需要如上所述的不同实现/配置的情况有多频繁

    依赖项注入在以下情况下无效:

    • 您永远不需要不同的实现
    • 您永远不需要不同的配置
    事实并非如此:即使在连接静态配置的对象时,依赖项注入也很有用

    事实上,你的整个论证都走错了方向。支持依赖项注入的主要原因是对象的独立和集中关注点:

    • 命名(DI容器中的每个对象都有一个唯一的名称)
    • 查找(每个对象都可以通过该名称从其他任何位置轻松查找)
    • 和布线(为一个对象提供对另一个对象的引用)
    此外,一个关键优势是对象生命周期和范围的声明式管理

    此外,Spring IoC容器还增加了许多优点,例如:

    • 基于注释的布线
    • 自动异常处理和报告
    • 基于注释的声明性事务
    • 基于注释的HTTP请求到控制器方法的映射
    。。。还有更多

    简而言之,基于DI容器执行应用程序意味着您可以专注于实际的业务逻辑,并将大多数其他关注点(在每个应用程序中重复)委托给容器

    依赖项注入在以下情况下无效:

    • 您永远不需要不同的实现
    • 您永远不需要不同的配置
    事实并非如此:即使在连接静态配置的对象时,依赖项注入也很有用

    事实上,你的整个论证都走错了方向。支持依赖项注入的主要原因是对象的独立和集中关注点:

    • 命名(DI容器中的每个对象都有一个唯一的名称)
    • 查找(每个对象都可以通过该名称从其他任何位置轻松查找)
    • 和布线(为一个对象提供对另一个对象的引用)
    此外,一个关键优势是对象生命周期和范围的声明式管理

    此外,Spring IoC容器还增加了许多优点,例如:

    • 基于注释的布线
    • 自动异常处理和报告
    • 基于注释的声明性事务
    • 基于注释的HTTP请求到控制器方法的映射
    。。。还有更多


    简而言之,基于DI容器执行应用程序意味着您可以专注于实际业务逻辑,并将大多数其他问题(在每个应用程序中重复)委托给容器。

    谢谢您的回复。我只引用rhis ref:。请更广泛地解释上面提到的
    命名
    查找
    语句。感谢您的回复。我只引用rhis ref:。请更广泛地解释上面提到的
    命名
    查找
    语句。