java web学习(进阶篇)三 Spring的依赖注入

来源:互联网 发布:数据输入 编辑:程序博客网 时间:2024/05/17 01:22

一 依赖注入(DI)

1 作用

当编写复杂的 Java 应用程序时,类应该尽可能独立于其他 Java 类,以增加这些类重用的可能性,在
做单元测试时,测试独立于其他类的独立性。

2 定义

依赖注入(DI)(有时称为布线)有助于把这些类粘合在一起,同时保持他们独立。

3 依赖注入的两种方法

(1)基于构造函数的依赖注入(DI):

当容器调用带一组(多个)参数的构造函数类时,实现基于构造函数的 DI,每个参数代表一个对其他类的依赖。

(2)基于 设值(setter)方法的依赖注入(DI)

通过在调用无参数的构造函数或无参数的静态factory方法实例
化 bean 之后容器调用 beans 的 setter 方法来实现。

如果有许多的设值函数方法,在 XML 配置文件中使用 p-namespace 会非常方便。

可以混合这两种方法,然而使用有强制性依存关系的构造函数和有可选依赖关系的 setter比较好。

二 注入内部Beans

Java 内部类是在其他类的范围内被定义,同理,inner beans(内部bean)是在其他 bean 的范围内定义的 bean。

三 注入集合

之前提到了如何使用 value 属性来配置基本数据类型和在 bean 配置文件中使用标签的 ref 属性来配置对象引用。这两种情况下处理奇异值传递给一个 bean。

如果想传递多个值,如 Java Collection 类型 List、Set、Map 和 Properties,Spring则提供了四类集合的配置元素:

元素 描述 <list> 有助于连线,如注入一列值,允许重复 <set> 有助于连线一组值,不能重复 <map> 用来注入名称-值对的集合,其中名称和值可以是任何类型。 <props> 用来注入名称-值对的集合,其中名称和值都是字符串类型

可以使用 或 来连接任何 java.util.Collection 的实现或数组。
你会遇到两种情况(1)传递集合中直接的值(2)传递一个 bean 的引用作为集合元素。

实例:

0 0