Spring - 依赖注入的好处

时间:2013-02-08 03:50:35

标签: spring

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

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

4 个答案:

答案 0 :(得分:4)

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

  1. 减少依赖性

  2. 减少依赖性携带

  3. 更多可重用代码

  4. 更多可测试代码

  5. 更易读的代码

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

答案 1 :(得分:2)

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

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

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

依赖注入和控制反转会更改控制流,从而向特定组件添加了管理依赖关系图并管理其连接方式的责任。结果是依赖项和依赖项之间实现了极大的解耦,从而提高了代码的可维护性,应用程序可靠性和可测试性。