我是Spring Framework的新手,当然首先想到的是spring是依赖注入。现在我可能错了,因为我刚刚开始学习Spring框架(特别是关于依赖注入),但我认为bean对所述对象的依赖注入不适用于事务数据。由于bean定义例如在spring.xml(蓝图)中定义,因此它不适用于事务数据,而是适用于静态和少量数据。我没有看到有任何方法可以使用动态XML(在运行时创建)将数千个事务对象注入另一个对象。
所以我做对了吗?如果是这样,依赖注入的真正好处是什么呢?
答案 0 :(得分:4)
使用依赖注入容器有一些好处,而不是让组件满足自己的依赖关系。其中一些好处是:
减少依赖性
减少依赖性携带
更多可重用代码
更多可测试代码
更易读的代码
更详细地解释了这些好处here。
答案 1 :(得分:2)
您是对的,事务性数据(例如:表示表行的数据)通常不会以声明方式注入。 Spring DI(依赖注入)通常用于处理多个类之间的协作。
我见过的常见例子是DAO(数据访问对象)和MVC(模型视图控制器)模式。在企业环境中,拥有一个包含数十个或数百个数据库表的项目是很常见的 - 因此将数十个/数百个DAO类注入到控制器类中。
如果你不使用DI,你需要有意识地管理应该首先创建哪个DAO,以及应该将哪个DAO注入哪个控制器等(这是一场噩梦)
代码重构(应该)也是常见的。业务需求总是不断变化。如果没有DI,一个简单的重构可能会导致一个大规模和棘手的解决'哪个类取决于什么和哪里'
答案 2 :(得分:0)
在我所阅读的有关依赖项注入的所有文章中,this是迄今为止最好的。
如果您将 Spring 用于DI,建议您阅读有关 @primary 注释的信息。 Spring使为给定服务选择所需的实现(从多个实现中)变得更加容易。 This文章很好。
答案 3 :(得分:0)
依赖注入和控制反转会更改控制流,从而向特定组件添加了管理依赖关系图并管理其连接方式的责任。结果是依赖项和依赖项之间实现了极大的解耦,从而提高了代码的可维护性,应用程序可靠性和可测试性。