我是 Spring Framework 的新手,当然,关于 Spring 的第一件事就是依赖注入。现在我可能错了,因为我刚开始学习 Spring 框架(尤其是关于依赖注入),但我认为将 bean 依赖注入到所述对象并不意味着事务数据。由于 bean 定义例如在 spring.xml(蓝图)中定义,因此它不是用于事务数据,而是用于静态和少量数据。我没有看到有任何方法可以使用动态 XML(在运行时创建)将数千个事务对象注入另一个对象。
那么我做对了吗?如果是这样,依赖注入的真正好处是什么?
我是 Spring Framework 的新手,当然,关于 Spring 的第一件事就是依赖注入。现在我可能错了,因为我刚开始学习 Spring 框架(尤其是关于依赖注入),但我认为将 bean 依赖注入到所述对象并不意味着事务数据。由于 bean 定义例如在 spring.xml(蓝图)中定义,因此它不是用于事务数据,而是用于静态和少量数据。我没有看到有任何方法可以使用动态 XML(在运行时创建)将数千个事务对象注入另一个对象。
那么我做对了吗?如果是这样,依赖注入的真正好处是什么?
没错,事务数据(例如:表示表行的数据)通常不会以声明方式注入。Spring DI(依赖注入)通常用于处理多个类之间的协作。
我见过的常见示例是 DAO(数据访问对象)和 MVC(模型视图控制器)模式。在企业环境中,通常有一个项目包含数十个或数百个数据库表——因此有数十个/数百个 DAO 类被注入到控制器类中。
如果不使用 DI,则需要有意识地管理应该首先创建哪个 DAO,以及应该将哪个 DAO 注入到哪个控制器等。(这是一场噩梦)
代码重构(应该)也很常见。业务需求总是在不断变化。如果没有 DI,一个简单的重构可能会导致“哪个类取决于什么和在哪里”的巨大而棘手的解开
依赖注入和控制反转改变了控制流,为特定组件增加了管理去依赖图和管理它的连接方式的责任。结果是依赖和依赖之间的极大解耦,提高了代码的可维护性、应用程序的可靠性和可测试性。