依赖注入:何时使用说明

时间:2014-01-23 11:35:10

标签: java spring dependency-injection

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

  

在这些情况下,依赖注入是有效的:

     
      
  1. 您需要将配置数据注入一个或多个组件。
  2.   
  3. 您需要将相同的依赖项注入多个组件。
  4.   
  5. 您需要注入相同依赖项的不同实现。
  6.   
  7. 您需要在不同的配置中注入相同的实现。
  8.   
  9. 您需要容器提供的一些服务。
  10.         

    如果符合以下条件,依赖注入无效:

         
        
    • 您永远不需要不同的实现。
    •   
    • 您永远不需要其他配置。
    •   

的问题:

我害怕不理解所有这些,所以如果我错了,我希望你能纠正我。

  1. 不明白。这是关于.properties文件还是我可以将相同的xml配置应用于多个bean?
  2. 对我来说很清楚。
  3. 对我来说很清楚。
  4. 不明白。请举例。
  5. 对我来说很清楚。
  6. P.S。 如果您从未需要如上所述的不同实施/配置,有多少次会出现这种情况?

1 个答案:

答案 0 :(得分:4)

  

如果符合以下条件,依赖注入无效:

     
      
  • 您永远不需要另外的实施。
  •   
  • 您永远不需要其他配置。
  •   

事实并非如此:即使在为静态配置的对象布线时,依赖项注入也很有用。

事实上,你的整个论证都走错了路。支持依赖注入的主要原因是对象的分离集中关注点:

  • 命名(DI容器中的每个对象都有一个唯一的名称),
  • 查找(每个对象都可以通过其他任何地方的名称轻松查找),
  • 接线(为一个对象提供另一个对象)。

此外,关键优势是对象生命周期和范围的声明式管理。

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

  • 基于注释的布线;
  • 自动异常处理和报告;
  • 基于注释的声明性交易;
  • 基于注释的HTTP请求到控制器方法的映射;

......还有更多。

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