【问题标题】:Spring - dependency injection benefitsSpring - 依赖注入的好处
【发布时间】:2013-02-08 03:50:35
【问题描述】:

我是 Spring Framework 的新手,当然首先想到的是 spring 依赖注入。现在我可能错了,因为我刚开始学习 Spring 框架(尤其是关于依赖注入),但我认为将 bean 依赖注入到所述对象并不意味着事务数据。由于 bean 定义例如在 spring.xml(蓝图)中定义,因此它不是用于事务数据,而是用于静态和少量数据。我没有看到有任何方法可以使用动态 XML(在运行时创建)将数千个事务对象注入另一个对象。

那么我做对了吗?如果是这样,依赖注入的真正好处是什么?

【问题讨论】:

    标签: spring


    【解决方案1】:

    使用依赖注入容器而不是让组件满足它们自己的依赖有几个好处。其中一些好处是:

    1. 减少依赖

    2. 减少依赖携带

    3. 更多可重用代码

    4. 更多可测试代码

    5. 更具可读性的代码

    更详细地解释了这些好处here。

    【讨论】:

    • 我猜你错过了“下面”部分。
    【解决方案2】:

    您是对的,事务数据(例如:表示表格行的数据)通常不会以声明方式注入。 Spring DI(依赖注入)通常用于处理多个类之间的协作。

    我见过的常见示例是 DAO(数据访问对象)和 MVC(模型视图控制器)模式。在企业环境中,通常有一个项目包含数十个或数百个数据库表——因此有数十个/数百个 DAO 类被注入到控制器类中。

    如果不使用 DI,则需要有意识地管理应该先创建哪个 DAO,以及应该将哪个 DAO 注入哪个控制器等(这是一场噩梦)

    代码重构(应该)也很常见。业务需求总是在不断变化。如果没有 DI,一个简单的重构可能会导致“哪个类取决于什么和在哪里”的大规模而棘手的解开

    【讨论】:

      【解决方案3】:

      在我读过的所有关于依赖注入的文章中,this 是迄今为止最好的。

      如果您将 Spring 用于 DI,我建议您阅读有关 @primary 注释的信息。 Spring 使为给定服务选择所需的实现(从多个实现中)变得更加容易。 This文章不错。

      【讨论】:

        【解决方案4】:

        依赖注入和控制反转改变了控制流,为特定组件增加了管理去依赖图和管理它的连接方式的责任。结果是依赖和依赖之间的很好解耦,提高了代码的可维护性、应用程序的可靠性和可测试性。

        【讨论】:

          猜你喜欢
          • 2010-09-13
          • 1970-01-01
          • 2018-11-21
          • 2012-12-23
          • 1970-01-01
          • 1970-01-01
          • 2015-10-04
          • 2011-12-09
          相关资源
          最近更新 更多